指针赋值错误C.

时间:2017-05-27 16:14:25

标签: c pointers types

我有一个结构定义为:

typedef struct _InstNode{

    InstInfo* instinfo;
    struct _InstNode *dep1;
    struct _InstNode *dep2;
    bool is_exit;
    bool is_entry;
    unsigned inst_latency;
    unsigned  depth_latency;
} InstNode;

这是instnode_array:

InstNode *instnode_array;
    instnode_array = (InstNode*)malloc(sizeof(InstNode)*numOfInsts);

现在我尝试执行以下操作: -

instnode_array[i].dep1 = instnode_array[j];

我收到此错误:

  从类型'struct _InstNode *' {aka 'InstNode}'

分配到类型struct _InstNode时,

不兼容的类型

  instnode_array[i].dep1 = instnode_array[j];

1 个答案:

答案 0 :(得分:3)

TL; DR 注意尊重数据类型。

instnode_array[j]为您提供struct _InstNode,而dep1的类型为struct _InstNode *

您可能想写

instnode_array[i].dep1 = &(instnode_array[j]);

如果这对你有用。