简体   繁体   English

以非零状态(repl.it)C ++退出吗?

[英]Exited with non-zero status (repl.it) C++?

I made some code to understand how linked lists work in C++ and before the program terminates it says the error "exited with non-zero status". 我编写了一些代码来了解链表如何在C ++中工作,并且在程序终止之前会说错误“以非零状态退出”。 I am currently using an online compiler repl.it to test C++ code, i am not sure if this problem is related. 我目前正在使用在线编译器repl.it来测试C ++代码,但不确定是否与该问题有关。 How do i fix it? 我如何解决它? Here is my code. 这是我的代码。 details details details details details detailsdetails details detailsdetails details detailsdetails details detailsdetails details details 细节细节细节细节细节细节细节细节细节细节细节细节细节细节细节

#include <iostream>
#include <string>
using namespace std;
struct node{
  int data;
  node* next;
};

int main()
{
  node* n; //new
  node* t; //temp
  node* h; //header

  n=new node;
  n->data=1;
  t=n;
  h=n;

  cout <<"Pass 1"<<endl;
  cout <<"t=" << t << endl;
  cout <<"n=" << t << endl;
  cout <<"h=" << h << endl;
  cout << n->data << endl;

  n=new node;
  n->data=2;
  t->next=n;
  t=t->next;

  cout <<"Pass 2"<<endl;
  cout <<"t=" << t << endl;
  cout <<"n=" << t << endl;
  cout <<"h=" << h << endl;
  cout << n->data << endl;


  n=new node;
  n->data=3;
  t->next=n;
  t=t->next;

  cout <<"Pass 3"<<endl;
  cout <<"t=" << t << endl;
  cout <<"n=" << t << endl;
  cout <<"h=" << h << endl;
  cout << n->data << endl;

  //Test pass
  //exits with non-zero status
  //NULL to pointer means invalid address; termination of program?

  n=new node;
  t=t->next;
  n->data=4;
  t->next=n;
  n->next=NULL;

  cout <<"Pass 4"<<endl;
  cout <<"t=" << t << endl;
  cout <<"n=" << t << endl;
  cout <<"h=" << h << endl;

  string a;
  a="End test";
  cout << a << endl;

  return 0;
}

The output is 输出是

Pass 1
t=0x12efc20
n=0x12efc20
h=0x12efc20
1
Pass 2
t=0x12f0050
n=0x12f0050
h=0x12efc20
2
Pass 3
t=0x12f0070
n=0x12f0070
h=0x12efc20
3
exited with non-zero status
  n=new node;
  t=t->next;  <- error there
  n->data=4;
  t->next=n;
  n->next=NULL;

At this time t is the 3rd node you create and at this time this node have no value for is next attribute. 此时t是您创建的第三个节点,并且此节点此时没有值为next属性。

You can use a debugger as gdb to see more easily this kind of problem ( but maybe in your online compiler you can't) 您可以将调试器用作gdb来更轻松地查看此类问题(但也许在您的在线编译器中看不到)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM