我有一个结构:
struct Path{
int8_t maxtopy;
};
我想创建一个指向Path
结构的指针数组,我试过类似的方法:
第一次
这是行不通的。第一个路径的值被正确赋值。但当for
循环开始时,我得到了分段错误。我已经发现,当我创建指针数组时,只有第一个指针会被赋值给某个结构。所以我不能例如paths[1]->maxtopy = -1;
,因为paths[1]
不指向任何现有的结构。
我曾经试过这样的办法:
for(int i = 1; i < NUMBER_OF_PATHS; i++){
static struct Path a;
paths[i] = &a;
paths[i]->maxtopy = i;
}
因为它只初始化a
一次,所以paths
数组中的每个指针都指向同一个结构。
我的问题是:如何创建指向初始化结构的指针数组?
2条答案
按热度按时间3xiyfsfu1#
你已经创建了一个指针数组,但是指针需要指向某个东西。你可以用
malloc
动态地分配每个指针。当然,如果您的数组是在
main
中声明的,并且大小不太大,您可能只需要编写以下代码。waxmsbnn2#