【发布时间】:2014-04-06 05:16:26
【问题描述】:
我有这个简单的 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的SF、C++和操作系统的SF)
【问题讨论】:
标签: pointers null segmentation-fault initialization