我有这个简单的c,c ++代码,运行良好:
struct node{
int x;
struct node* next;
};
int main(int argc, char *argv[])
{
int a,b,c;
struct node *root, *node1, *node2, *leaf;
root = malloc( sizeof(struct node) );
//root = NULL;
root->next = 0;
root->x = 12;
system("PAUSE");
return 0;
}
现在,如果我指定root = NULL或0,而不是malloc,它会给我这个错误 -
“程序中出现访问冲突(分段错误)”
在下一行中,我可以为下一个指针分配0。请解释
在这个论坛中,我读到当我们尝试访问安全内存空间时出现分段错误,而操作系统在内存中找不到所需数据时将其定义为页面错误。它们有关系吗? (操作系统的C,C ++和SF的SF)
答案 0 :(得分:0)
您不能也不应该取消引用空指针。