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
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 mmocr的训练错误,结果全为0
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀