gpt4 book ai didi

c++ - Windows 在 myprogram.exe 中触发了一个断点

转载 作者:太空宇宙 更新时间:2023-11-04 11:28:29 24 4
gpt4 key购买 nike

Windows 已在 myprogram.exe 中触发断点。这可能是由于堆损坏,这表明 myprogram.exe 或其加载的任何 DLL 中存在错误。这也可能是由于用户在 projtest.exe 获得焦点时按了 F12。输出窗口可能有更多的诊断信息。

工作代码:

void main()
{
const unsigned char a_size = 15;
int *a = new int[a_size];
memset(a,0,a_size*sizeof(a));
delete [] a;
}

错误代码:

void main()
{
const unsigned char a_size = 15;
char *a = new char[a_size];
memset(a,0,a_size*sizeof(a));
>delete [] a;
}

'>'为断点位置

因此,动态数组中的 char 类型会导致错误。

附加信息:使用 Visual Studio C++ 2008

最佳答案

sizeof 中缺少一个星号:

memset(a,0,a_size*sizeof(*a));

那是因为:

sizeof(a) == sizeof(int*)  -- usually 4 or 8
sizeof(*a) == sizeof(int) -- usually 4

关于c++ - Windows 在 myprogram.exe 中触发了一个断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25743845/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com