通过指针赋值给结构域时的SEGMENTATION错误?

时间:2016-01-23 21:39:42

标签: c++ pointers struct linked-list

我正在尝试创建链接列表,但每当我尝试将数据分配给结构中的数据字段时,我会得到分段错误.Plz帮助??

struct Node
{
    int data;
    Node* next;
};


int main()
{
   ios_base::sync_with_stdio(false);
   Node* start=NULL;
   Node* prev=NULL;
   int N,Q,L,M,R,x;
   cin>>N>>Q;
   cin >> x;
   start->data = x;  // The Line where i get error
   start->next=NULL;
   prev = start;
  return 0;
}

1 个答案:

答案 0 :(得分:0)

您正在制作node类型的指针但不为其分配内存。在没有分配内存的情况下,您尝试访问start->data。 为此,您将获得细分错误

  • 首先分配内存以启动和上一个。
  • 然后访问它。

例如:

Node* start=NULL; 
start= new Node; //allocate memory where your start pointer will point
start->data = x;

修改

请检查new运营商的使用情况。我不确定哪一个是正确的start = new Node;start = new Node();

您还可以使用malloc;

分配内存