[英]initialize structure members using pointer in c++
我正在编写一个简单的c ++代码,以在代码块中使用g ++初始化结构的成员。 下面的代码编译没有任何错误或警告,但是当我运行代码时,出现错误
try.exe已停止工作。
我认为将值分配给整数成员val时会出现问题。
#include<iostream>
struct node{
int val;
node *next;
}*head;
int main(){
head->val=10;
std::cout<<head->val;
return 0;
}
head
是未初始化的指针。 它指向的位置是未定义的,但可能是代码无法写的,因此当您尝试在head->val=10;
行中对其进行写入时,会导致崩溃head->val=10;
要解决此问题,您需要为head
分配内存
head = new node();
head->val=10;
....
delete head;
另外,示例中实际上不需要指针
struct node{
int val;
node *next;
}head;
int main(){
head.val=10;
std::cout<<head.val;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.