我有一个结构定义为:
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];
答案 0 :(得分:3)
TL; DR 注意尊重数据类型。
instnode_array[j]
为您提供struct _InstNode
,而dep1
的类型为struct _InstNode *
。
您可能想写
instnode_array[i].dep1 = &(instnode_array[j]);
如果这对你有用。