#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
int data;
struct node * next;
} node;
int main()
{
node * head;
head->data=5; //crash
}
我不明白为什么这样的事情会崩溃?我一直在使用指针几个月,但最简单的例子似乎让我感到难过。
答案 0 :(得分:4)
扩展 juanchopanza 在评论中所说的内容:
您的node * head;
创建了一个指针,但它没有指向任何有效的node
结构。
您首先需要使用malloc
为其分配空间,例如:
node * head = malloc(sizeof(node));
在程序结束时也不要忘记free
,以免造成内存泄漏:
free(head);
答案 1 :(得分:1)
你没有写任何东西。
node *head = (node*)malloc(sizeof(node));
你最好正确检查malloc返回并确保你在完成后自由发挥