c++ delete数组崩溃
C++ delete array crashes
这是我的代码…
int* getA(int no)
{
int *a = new int[no];
return a;
}
void main()
{
int* a = getA(10);
delete []a;
}
当我在main中删除数组a时,它崩溃了…原因是什么?
错误是"Windows在Final.exe中触发了一个断点。这可能是由于堆的损坏,这表明Final.exe或它加载的任何dll中存在错误..........."但是我可以在main方法中分配和访问a的元素但是当我试图删除时它会崩溃....
这段代码没有问题。大概是
- 它与你的实际代码在一些重要的方面不同,或者
- 实际代码中不相关的东西在代码运行之前破坏了堆。
应该可以正常工作(删除)。
如果编译器接受了未定义的行为,应用程序可能会崩溃。尝试以下操作,并在调试器下运行它,以验证它是否在删除时崩溃:
int* getA(int no)
{
int *a = new int[no];
return a;
}
int main()
{
int* a = getA(10);
delete []a;
return 0;
}
相关文章:
- 类对象数组的问题会导致崩溃
- 字节数组初始化会导致 DirectX 崩溃
- 使用 sf::Text 数组时崩溃
- For 循环在尝试读取数组 c++ 时程序崩溃
- 删除数组 c++ 崩溃问题
- 如果类的成员,C++数组会导致崩溃
- 在C++中删除指针数组时析构函数崩溃
- 在 C++ 中使用平展数组语法,崩溃取决于宽度/高度
- 我的单例中的数组在离开函数后没有保留信息,然后在尝试再次访问信息时崩溃
- C++ rezing 动态数组最多可以处理一定数量的元素,但在某些时候会崩溃并显示错误 (0XC0000005)
- 释放字符的动态数组时崩溃
- size_t结构非数组成员崩溃的强制转换
- C++程序在迭代到数组的最后一个元素时崩溃
- 从数组比较2个字符串时,程序崩溃
- C++ 尝试向类内的数组(或向量)添加值时程序崩溃
- 内存相关崩溃:Cocos2d游戏中的三维数组
- 尝试获取数组中的最小元素时崩溃
- 动态数组在构造函数处崩溃
- 使用数组的单向链表:它在运行时崩溃
- C 程序崩溃(数组和2个指针Binsearch功能)