gpt4 book ai didi

c++ - 程序在访问结构元素时崩溃

转载 作者:行者123 更新时间:2023-12-01 14:22:54 25 4
gpt4 key购买 nike

struct aint b 和指向结构的指针作为它的元素。并且程序在没有打印结果的情况下崩溃。

struct a{
int b{5};
a* next=new a;
a(){
next->b=3;
}

};
int main(){
a a1;
cout<<a1.b<<endl;
cout<<(*(a1.next)).b<<endl;
return 0;
}

我期望输出是:

5

3

最佳答案

a* next=new a;

您的 a 结构有一个名为 next 的成员,它由 new 进行默认初始化。您的程序创建的每个 a 实例都有一个名为 next 的类成员,它由 new 初始化。这就是类和默认类成员初始化器的工作方式。

正如我所说,这个成员是另一个结构a。当然,其中还有一个名为 next 的成员,它将由 new 初始化。当然,就像结构 a 的每个实例一样。

第二个 struct a 也将有一个 next 成员,就像所有 a 一样,它将由 初始化新的a 的第三个实例将拥有它自己的 next,它将由 new 初始化。

以此类推,一直持续下去,直到您的计算机耗尽内存,从而创建一个无限的 a 结构链。

不清楚你的意图是什么,但这回答了你的程序为什么会崩溃的问题。

关于c++ - 程序在访问结构元素时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61648514/

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