c++ - 如何在 C++ 中使用数组演示内存错误

标签 c++ memory-leaks arrays

我正在尝试想出一种方法来演示一种使用数组和 C++ 的内存错误,这种错误很难检测到。目的是激发 STL vector<> 与迭代器结合使用。

编辑: 接受的答案是我用来解释优点/缺点的答案。我还用过:this

最佳答案

不正确地配对 new/delete 和 new[]/delete[]。

例如,使用:

int *array = new int[5];
delete array;

代替:

int *array = new int[5];
delete [] array;

虽然 c++ 标准不允许这样做,但一些编译器支持堆栈分配数组:

int stack_allocated_buffer[size_at_runtime];

这可能是作用域规则的意外副作用(例如常量被成员变量遮蔽)......并且它一直有效直到有人将'size_at_runtime'传递得太大并炸毁堆栈。然后会出现蹩脚的错误。

关于c++ - 如何在 C++ 中使用数组演示内存错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2776608/

相关文章:

C++ - 指针函数参数

jQuery - Internet Explorer 内存泄漏

haskell - 使用scanl时空间泄漏在哪里? ( haskell )

arrays - Swift:删除文档字段Firestore(云数据库)内字典中的元素

JavaScript 数组排序

c++ - C++中的输入限制和错误检查

c++ - 将 'typedef' 从基类传播到 'template' 的派生类

c++ - PHP 的 preg_match() 等同于 C++?

iphone - valgrind和iphone

php - swagger-php 使用属性响应对象数组