qq_36734504 2017-10-13 15:03 采纳率: 0%
浏览 588

c++中动态分配的存储空间无法析构的问题

#include
using namespace std;
class soldiers {
private:
int height;
int size;
public:
soldiers(int *h, int n);
~soldiers();
int check();
void sort();
int resolve();
void print();
};
soldiers::soldiers(int *h, int n)
{
height = new int[size];
for (int i = 0; i {
*(height + i) = *(h + i);
}
size = n;
delete[]h;
}
int soldiers::check()
{
int *abc = new int[this->size - 1];
for (int i = 0; i<size - 1; i++)
{
*(abc+ i) = *(height + i + 1) - *(height + i);
}
for (int k = 0; k<size - 2; k++)
{
for (int m = k + 1; m<size - 1; m++)
{
if (
(abc + m) == (abc + k))
{
return 0;
break;
}
}
}
return 1;
}
void soldiers::sort()
{
for (int i = 0; i<size - 1; i++)
{
for (int j = 0; j<size; j++)
{
if (
(height + j)>(height + j + 1))
{
int temp = *(height + j);
*(height + j) = *(height + j + 1);
*(height + j + 1) = temp;
//swap(
(height+j),*(height+j+1));
}
}
}
}
int soldiers::resolve()
{
if (soldiers::check() == 0)
{
soldiers::sort();
int *t = new int[size];
for (int i = 0; i<size; i++)
{
if (i % 2 == 0)
{
*(t + i) = *(height + i);
}
else
{
*(t + i) = *(height + size - 1 - i);
}
}
for (int k = 0; k<size; k++)
{
*(height + k) = *(t + k);
}
}
return 0;
}
void soldiers::print()
{
for (int i = 0; i<size; i++)
{
cout << *(height + i) << endl;
}
}
soldiers::~soldiers()
{
delete[]height;
}
void main()
{
int p[9] = { 178,167,172,180,170,182,184,176,174 };
soldiers a(p, 9);
a.resolve();
a.print();
}

height析构出错

  • 写回答

1条回答 默认 最新

  • 肥宅_Sean 2017-10-14 01:54
    关注

    问题存在于你的构造函数上。
    有一个左括号没有皮匹配的右括号

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题