【发布时间】:2018-11-05 05:55:30
【问题描述】:
我是编程新手。前几天我在玩结构和指针...我遇到了错误。我试图纠正它们。它得到了纠正...但我无法证明为什么会出现错误第一名。请帮帮我...
struct node{
int data;
struct node*next;
};
int main(){
struct node *newnode=NULL;
struct node *start=NULL;
newnode=start=(struct node*)malloc(sizeof(struct node));
newnode->data=1;
//code snippet
newnode->next=NULL;
newnode=newnode->next;
newnode=(struct node*)malloc(sizeof(struct node));
newnode->data=2;
start=start->next;//error probably as start->next is perceived as NULL Address
printf("%d",start->data);
return 0;
}
用此代码替换代码 sn-p 时
newnode->next=(struct node*)malloc(sizeof(struct node));
newnode=newnode->next;
newnode->data=2;
start=start->next;
printf("%d",start->data);
error dissapers..如何证明这一点?
【问题讨论】:
-
请注意,当您接下来要做的是为它们分配不同的值时,将指针初始化为 NULL 是不必要的(但无害的)。
-
正如约翰所说,如果这确实是您接下来要做的事情,请直接初始化您的指针。使您的代码更精简,看起来更一致。
标签: c pointers data-structures struct malloc