我试图理解为什么分配 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/