我是一名 C++ 初学者程序员。 最近,我正在使用 C++ 进行图像处理。
但是我有一些问题想请教。假设我有一些代码如下:
for (int i=0;i<100000;i++)
{
int * a = new int[10000];
//do something
delete [] a;
}
当我执行该代码时,我收到运行时错误,堆错误...
该代码有什么问题吗?我的意思是,我可以在同一个循环中分配内存并释放它吗?
提前致谢...
最佳答案
错误可能出在您未显示的代码中。您可能还想像这样重写代码:
int * a = new int[10000];
for (int i=0;i<100000;i++)
{
//do something
}
delete [] a;
如果没有别的办法的话,这会更有效率。由于这是 C++,您还可以考虑:
vector <int> a( 10000 );
for (int i=0;i<100000;i++)
{
//do something
}
关于c++ - C++ 中的堆错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2825496/