2013-04-21 90 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