【发布时间】:2015-02-10 21:18:59
【问题描述】:
我不知道为什么会出现分段错误。我在网上看到的所有其他实例都有分段错误,因为 scanf 中的变量是一个指针。我的不是,我仍然得到错误
#include<stdio.h>
#include<stdlib.h>
struct Node
{
int grade;
struct Node *next;
};
int main()
{
int input;
struct Node *head, *current;
current = head;
printf("Enter Grades: \n");
do
{
scanf("%d",&input);
current->grade = input;
struct Node *new_node = malloc(sizeof(struct Node));
current->next = new_node;
current = current->next;
}while(input != -1);
return 0;
current = head;
}
【问题讨论】:
-
你得到 seg 错误,因为你没有在语句 current->grade=input 之前为结构分配内存,你应该分配内存 malloc head=malloc(sizeof(struct Node));