gpt4 book ai didi

c - 如何正确引用 C 中的两个结构?

转载 作者:太空宇宙 更新时间:2023-11-04 01:46:55 25 4
gpt4 key购买 nike

我有一个结构定义为:

typedef struct{
int pages;
}book;

我首先声明一个实例:

book *b=malloc(sizeof(book));
b->pages=35;

然后我将另一本书指针声明为:

book *a;
a=&b;

调试后我发现结构a 中的成员不像b?我在 a 中得到了 pages 的错误值。

a不是应该指向b的内存吗?我怎样才能正确取消引用 a ?对不起,如果我没有正确理解指针的概念。

最佳答案

您在这里所做的是将b 的地址存储在a 中。当取消引用 a 时,您现在可以得到存储在 b 中的内容,这是存储书籍的地址,而不是书籍本身。事实上,我认为您在尝试访问 a->pages 时应该遇到段错误,因为甚至没有分配此内存。

所以我认为你想在这里做的是使 a 成为指向与 b 相同的 book 结构的指针,你可以实现通过做

book *a = b;

关于c - 如何正确引用 C 中的两个结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52035238/

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