Я пишу простой код 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 = new node();
head->val=10;
....
delete head;
Кроме того, вам не нужен указатель в вашем примере
struct node{
int val;
node *next;
}head;
int main(){
head.val=10;
std::cout<<head.val;