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

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

本文关键字:it 退出 repl 状态      更新时间:2023-10-16

我制作了一些代码,以了解链接列表在C 中的工作方式,并且在程序终止之前,它说"以非零状态退出"。我目前正在使用在线编译器REPL.it测试C 代码,我不确定此问题是否相关。我如何解决它?这是我的代码。详细信息详细信息详细信息详细信息详细信息详细信息详细信息详细信息详细信息详细信息详细信息详细信息详细信息

#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;
}

输出为

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;

此时t是您创建的第三个节点,此时该节点没有值为next属性。

您可以将调试器用作GDB,以更轻松地查看此类问题(但也许在您的在线编译器中,您不能)