gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 18:18:08 26 4
gpt4 key购买 nike

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com