Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在编写一个简单的 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
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;