嗨我有一个下面的函数,每次编译它都会给我一个错误:“错误:从不兼容的类型'struct nodeInfo'分配'struct nodeInfo'”我不知道如何解决它,因为我'我声明了一个相同类型的数组。欢迎任何帮助。
编辑:netTopo [id] = curNode;线路导致问题。
struct nodeInfo *getTopology(FILE * file)
{
int totLinks = 0, digit = 0;
fscanf(file, "%d", &nodeCount);
struct nodeInfo netTopo[nodeCount];
// How many links does node have
for (int id = 0; id < nodeCount; id++)
{
struct nodeInfo
{
int n;
int *links;
} curNode;
curNode.n = id;
fscanf(file, "%d", &totLinks);
for (int i = 0; i < totLinks; i++)
{
curNode.links[totLinks];
fscanf(file, "%d", &digit);
curNode.links[i] = digit;
}
netTopo[id] = curNode;
}
return netTopo;
}
答案 0 :(得分:3)
您已定义nodeInfo
两次。
而不是
struct nodeInfo {
int n;
int *links;
} curNode;
试
struct nodeInfo curNode;
您的第一个声明未显示,所以我只是猜测您打算将它们设为相同。