【发布时间】:2016-05-14 09:17:33
【问题描述】:
我为树编写了一个 c 程序。
#include<stdio.h>
#include<stdlib.h>
struct node{
int data;
struct node *left;
struct node *right;
};
struct node* newNode(int value){
struct node* temp;
temp->left = NULL;
temp->right = NULL;
temp->data = value;
return temp;
}
int main(){
struct node *root;
root = newNode(60);
root->left = newNode(40);
root->right = newNode(80);
root->left->left = newNode(30); // program crashes here.
root->left->right = newNode(50);
}
这是我正在编写的另一个程序的子部分。在调试时,我意识到分配newNode(30) 时出错。我不明白为什么?
【问题讨论】:
-
struct node* temp;-->struct node* temp = malloc(sizeof(*temp));
标签: c pointers memory-management dereference