【发布时间】:2013-08-17 12:28:24
【问题描述】:
我需要创建一个图形并在其节点中存储几个变量。为此,我想创建一个带有数组和整数的结构。然后创建一个二维数组,该数组将保存我创建的所有节点,第二个数组用于保存节点之间的连接。我的问题是,当我尝试初始化节点数组时,程序停止工作。谁能告诉我我做错了什么?
struct node {
int KEYS_UNLOCKED[43];
int points_given;
};
struct node **NODE_MAT;
NODE_MAT = malloc(doors*sizeof(struct node *) * sizeof(struct node));
for(i=0; i<doors; i++)
NODE_MAT = malloc(doors*sizeof(struct node *) * sizeof(struct node));
for(i=0; i<doors; i++)
{
for(j=0; j<doors; j++)
{
for (k=0; k<43; k++)
NODE_MAT[i][j].KEYS_UNLOCKED[k] = 0;
NODE_MAT[i][j].points_given = 0;
}
}
【问题讨论】:
-
因为你的结构没有实例。
-
谢谢,我没看到!
-
还是不行
-
为什么 -
NODE_MAT = malloc(doors*sizeof(int));?它应该是-NODE_MAT = malloc(doors*sizeof(struct node *) * sizeof(struct node));。另外,typedef是怎么回事? -
仍然没有,typedef 是一个“绝望”的变化,以防万一它起作用,而不是它会但仍然。
标签: c arrays struct initialization