为结构指针赋值NULL会给出分段错误的错误和含义

时间:2014-04-06 05:16:26

标签: pointers null segmentation-fault initialization

我有这个简单的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;
}
  1. 现在,如果我指定root = NULL或0,而不是malloc,它会给我这个错误 -
    “程序中出现访问冲突(分段错误)” 在下一行中,我可以为下一个指针分配0。请解释

  2. 在这个论坛中,我读到当我们尝试访问安全内存空间时出现分段错误,而操作系统在内存中找不到所需数据时将其定义为页面错误。它们有关系吗? (操作系统的C,C ++和SF的SF)

1 个答案:

答案 0 :(得分:0)

您不能也不应该取消引用空指针。