FASG 2016-08-19 02:20 采纳率: 0%
浏览 964

c++ 中用了delete[] 后就不知道程序跑到哪里了

在我程序中用了delete[]后,通过调试后程序就不知道跑哪里了
图片说明
在运行delete[]这一步,然后调试下一步的时候,程序就响了一下,然后— —
图片说明
我就不知道程序跑到哪里去了,上网查也没查出什么
拜托

源码:
#include
#include
#include
#include
#include
using namespace std;

class Stu
{
public:
char *name;
int age;
int num;
char sex;
Stu(char *name = "", int age = 0, int num = 0, char sex = ' ');
~Stu();
friend ostream &operator<< (ostream &out, Stu &A);
friend istream &operator>> (istream &in, Stu &A);
};

Stu::Stu(char *name, int age, int num, char sex)
{
this->name = new char[strlen(name + 1)];
strcpy(this->name, name);
this->age = age;
this->num = num;
this->sex = sex;
}

Stu::~Stu()
{
delete[] name;
cout << "OK!" << endl;
}

ostream &operator<< (ostream &out, Stu &A)
{
out << A.name << " " << A.age << " " << A.num << " " << A.sex;
return out;
}

istream &operator>> (istream &in, Stu &A)
{
char tmp[10];
cout << "姓名:";
in >> tmp;
delete[] A.name;
A.name = new char[strlen(tmp + 1)];
strcpy(A.name, tmp);
cout << "年龄:";
in >> A.age;
cout << "学号:";
in >> A.num;
cout << "性别:";
in >> A.sex;
return in;
}

void Add()
{
Stu A;
cin >> A;
fstream p;
p.open("学生信息.txt", ios::ate | ios::out);
p << A;
p.close();
}

int main()
{
while (1)
{
Add();
system("pause");
}
return 0;
}

  • 写回答

4条回答 默认 最新

  • oyljerry 2016-08-19 02:47
    关注

    关闭编译器的优化等,然后再重新编译,设断点跟踪调试

    评论

报告相同问题?

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境