c - 一个结构存储在另一个结构中

标签 c graph nodes structure

我试图理解为什么分配 g.node = n1;不可能。

谁能解释一下吗? 这个想法是使用结构创建一个带有节点的图。我以为这个方法可行,但我得到 error: incompatible types in assignment对于 g.node = n1;

#include <stdio.h>

typedef struct
{
    int value;
    int *edges;
    int *adj;
}  Node;

typedef struct
{
    Node *node;

} Graph;

void resize_array(char *, int);
void copy_array  (char *, char *);
int main()
{
    Graph g;
    Node n1, n2;
    int edgesS[1] = {9};
    int adjS[1] = {5};
    n1.edges = edgesS;
    n1.adj = adjS;
    n1.value = 1;
    g.node = n1;
    return 0;
}

void resize_array(char * array, int size){array[size] = '\0';}

最佳答案

g.node 的类型为 Node*,但 n1 的类型为 Node。分配可能为

g.node = &n1;

相反。请注意,g.node 仅指向一个Node;它不包含一个人的内存。通过上面的简单赋值,当n1超出范围时,g.node指向的内存将变得无效。

关于c - 一个结构存储在另一个结构中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13502805/

相关文章:

c - 一维数组传递给两个函数,只有一个函数输出正确的结果。为什么?

c - 引用结构并将值添加到结构时出现段错误

我们可以在调用 pthread-create() 函数之前定义一个变量吗

recursion - 如何找到图中所有等效的顶点?

python - 缩放与邻接矩阵成比例的 NetworkX 节点和边

java - 如何从java中的链接列表中的节点检索对象的内容

javascript - 可以在 Text 节点上执行哪些 DOM 操作?

c - 指针和数组练习题

网络图形可视化

css - 将 css 类添加到 Ext.view.View Extjs 4 中的节点