c++ - C++ 中的堆错误

标签 c++ pointers heap-memory

我是一名 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/

相关文章:

c++ - 函数返回后,指向字符串文字的指针是否仍然有效?

java - 如果我将 InputStream 的对象保存到内存中,是否意味着我将整个文件存储到内存中?

c++ - 为处于挂起状态的线程调用 TerminateThread C++

c++ - 如何在 Windows 中获取文件安全属性

创建一个简单的二叉搜索树

java - MySQL 内存不足 Java 堆空间

node.js - 在 Node.js 中,数据什么时候存储在堆上?

c++ - 在OpenCV中调用stereoRectify会导致异常: invalid frame pointer

c++ - 专门为私有(private)类(class)的功能?

c - "error: subscripted value is neither array nor pointer nor vector",但为什么呢?