C中的结构数组类型

时间:2013-10-12 00:55:08

标签: c arrays struct

嗨我有一个下面的函数,每次编译它都会给我一个错误:“错误:从不兼容的类型'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;
}

1 个答案:

答案 0 :(得分:3)

您已定义nodeInfo两次。

而不是

struct nodeInfo {
    int n;
    int *links;
} curNode;

struct nodeInfo curNode;

您的第一个声明未显示,所以我只是猜测您打算将它们设为相同。