2013-04-21 21 views
2

我有這2層結構:指針數組的大小內部結構

typedef struct { 
    char name[20]; 
    int num; 
    int score; 
} player; 

typedef struct { 
    char name[20]; 
    player *players; 
} team; 

我需要知道每個存儲每*playersteam結構中的元素的量。 謝謝!

+2

然後爲此創建一個struct成員(類型'size_t',也許)。 – 2013-04-21 19:55:16

+0

團隊結構只包含一個指向玩家的指針。這可能是一系列球員中的第一位球員,也可能只是一名球員。當你爲該指針分配一些內存時,多少將取決於你分配的數量。 – Will 2013-04-21 19:56:37

+0

@我會分配22,但程序可能會或可能不會使用22,所以,然後我會將該內存重新分配給所使用的數量,然後,函數需要打印每個團隊有多少玩家,所以,我需要一種方法來知道有多少項目在數組本身 – Dunnow 2013-04-21 20:08:03

回答

5

你不能。 players是指向N player實例的指針。它沒有比地址更多的信息。它不是一個數組;它是一個指針。

您將不得不單獨存儲結構中的元素數量。

typedef struct { 
    char name[20]; 
    player *players; 
    size_t num_players; 
} team; 

在附註中,您最好希望Jarrod Saltalamacchia永遠不會加入此團隊。

+2

那邊注意! (如果我今天有剩餘選票,我會+1。) – 2013-04-21 19:58:53

+0

Jarrod Saltalamacchia ??那是誰,爲什麼他會吮吸? – 2013-04-21 19:59:29

+2

@LefterisE:'char name [20];' – 2013-04-21 20:00:28