c - 结构类型数组

标签 c arrays gcc struct

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/

相关文章:

c - 将多个输出存储在字符串数组中

javascript - 如何使用字符串作为选择器在对象中设置数据?

javascript - 使用 mySQL 数组对象作为 int

c++ - 如何在 GCC 2.96 中分解 C++

c++ - 模板类的自动内存池功能

c - 运行程序时,如何验证使用了哪个动态链接器?

c - 在 Linux 上粘贴宏不起作用

c - 如何在 C 中将两个变量的 int 地址转换为 char 指针?

配置交叉编译器以使用自定义库搜索路径

c++ - 易于使用 C 或 C++ 中的绘图库?