0i 声明了一个结构如下:
struct node
{
int num;
struct node *ptr;
};
typedef struct node NODE;
我有一个链表,其中有一个指针 first 指向它。
而且我还声明了一个上述类型的数组 NODE NODE* array[312500];
现在我想让 array[0] 指向链表而不是 first,所以我使用了 array[0]->ptr=first;
但是这种方式给了我一个段错误!!!可能是什么问题!!!
最佳答案
您声明了一个指针数组,但从未为任何指针分配内存。
NODE* array[312500];
是一个包含 312500 个 NODE* 类型指针的数组
如果你只想要NODE
,那么说
NODE array[312500];
否则,你需要说类似的话
array[0] = (NODE*) malloc(sizeof(NODE));
然后你可以改变它的ptr
关于c - 结构类型数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19982620/