指向struct的不兼容指针类型

时间:2017-01-25 19:06:58

标签: c pointers struct

我只是尝试制作一些指向" Nall" struct所以我写这段代码

Nall **headall;
    headall = malloc (30000 * sizeof (Nall));
    for (i = 0; i < 30000; i++) {
        *(headall+i) = newNall;
    }

现在我收到此错误

  

&#34;警告:分配给Nall *的指针类型不兼容         来自struct nodeall *的{​​Nall *(void)}         (又名struct nodeall *(void))[ - 兼容指针类型]           *(headall+i) = newNall;&#34;

1 个答案:

答案 0 :(得分:4)

从编译器警告我假设newNall实际上是一个分配新struct nodeall并返回指向它的指针的函数。在这种情况下,您的代码应如下所示:

Nall **headall;
headall = malloc(30000 * sizeof *headall);
for (i = 0; i < 30000; i++)
  headall[i] = newNall();

请注意sizeof运算符的参数以及newNall之后的括号。