lilillos 2016-04-19 12:19 采纳率: 50%
浏览 1482

桶排序时,释放内存出错?

#include
#include
int MaxValue(std::vectorb);

void BarrelSort(int c[], std::vectorb)
{
int max = MaxValue(b);
int* a=new int [max+1];
for (int i = 0; i < max+1; i++)
{
a[i] = 0;
}

for (std::vector<int>::iterator i = b.begin(); i !=b.end(); i++)
{
    ++a[*i];
}

//for (int i = 0; i < max+1; i++)
//{
//  std::cout << a[i] << std::endl;
//}

int k = 0;
for ( int i = 0; i < b.size(); )
{
    if (a[k] > 0)
    {
        for (unsigned int j = 0; j < a[k]; j++, i++)
        {
            c[i] = k;

        }
    }
    k++;

}

//delete[]a;为什么会报错

}

int MaxValue(std::vectorb)
{
int max = b[0];
for (std::vector::iterator i = b.begin(); i < b.end(); i++)
{
max > *i ? max:max = *i;
}
return max;
}

int main()
{
int *t = new int[];
std::vectorc = { 9,2,3,7,6,4,8,9,2,3,4, };

BarrelSort(t, c);
for (unsigned int i = 0; i <c.size() ; i++)
{
    std::cout << t[i] << std:: endl;
}
//delete[]t;为什么会报错
int s;
std::cin >> s;

}
释放内存的时候,会提示触发断点,未加载 wntdll.pdb。
百度知道里说勾选微软的符号服务器就可以解决,但实际勾选还是错误。

  • 写回答

1条回答

  • 小灸舞 2016-04-19 12:45
    关注

    一般都是越界读写造成堆空间的破坏,所以delete报错

    评论

报告相同问题?

悬赏问题

  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站