测试项目.exe触发了断点
Test Project.exe has triggered a breakpoint
当我运行代码时,它给了我一个错误,我触发了一个断点。 它没有告诉我这个断点在哪里。 谁能帮忙?
void memLeak()
{
int *p = new int;
char * string1 = new char[20];
char * string2 = new char[25];
strcpy(string1, "Sheldon");
string2 = string1;
delete string2;
delete string1;
delete p;
}
int main(int argc, char* argv[])
{
memLeak();
_CrtDumpMemoryLeaks();
return 0;
}
- 使用
new
时,请使用delete
。 - 使用
new[]
时,请使用delete[]
。
即,数组有两者的单独版本。
delete[] string2;
delete[] string1;
delete p;
- 当您分配
string2 = string1
时,您将丢失指向第二个字符串的原始指针,并尝试删除第一个字符串两次。可能是这种双重删除导致了断点错误。
但更好的是,使用 std::string
,不要担心自己直接使用 new
/delete
。
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 无法在 CLion 中构建 C++ 项目
- 运行同一解决方案的另一个项目的项目
- CMake-按正确顺序将项目与C运行时对象文件链接
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 欧拉项目#8答案是大以获得有效答案
- 从链接列表c++中删除一个项目
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 既然存在危险,为什么项目要使用-I include开关
- cmake在我的项目中所需的所有静态库都不成功
- QT通过C++添加映射QML项目
- 项目名称.exe 已触发断点
- 测试项目.exe触发了断点
- 在 Eclipse 中调试 Ubuntu 上的C++项目不会在断点处停止
- 项目.exe在系统("pause")之后触发了断点
- GDB 断点未停止程序(项目符号物理库中的断点)
- 其中是调试信息(断点等)存储在本机C++dll项目VS2013中的位置
- cmake 生成的 VS 项目无法断点
- 是否有可能在调试版本中编译VS项目,包括通过不同的项目进行调试的断点
- 项目触发了一个断点,后跟_BLOCK_TYPE_IS_VALID(pHeap->nBlockUse)