gpt4 book ai didi

c++ - 构造函数中的段错误

转载 作者:行者123 更新时间:2023-11-30 03:57:24 25 4
gpt4 key购买 nike

程序编译但在运行时,它打印“asd12”,然后是“asd45”,然后是“Segmentation fault (core dumped)”。它不打印“asd67”。有人可以帮我解决这个问题吗?

struct node{
int a[3];
int b;
int c;
node* parent;
node(){
b=0;
parent=NULL;
}
};



int main(){
node* x;
node* y;
cout << "asd12"<< endl;
x->a[0]=1;x->a[1]=1;x->a[2]=1;
cout << "asd45"<< endl;
y->a[0]=1;y->a[1]=1;y->a[2]=1;
cout << "asd67"<< endl;
return 0;
}

最佳答案

您已将 x 和 y 声明为指向 struct node 对象的指针,但您并未创建这些对象。

最简单的解决方案是更改您的声明

node* x;
node* y;

致:

node x;
node y;

这将创建自动节点变量,并允许您像这样访问数组元素:

x.a[0] = 1;

您也可以使用

创建动态变量
node* x = new node;
node* y = new node;
// access vars using pointer syntax
x->a[0] = 1;
// when finished with x and y, delete the created objects
delete x;
delete y;

关于c++ - 构造函数中的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28018611/

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