#include <stdlib.h>
#include <stdio.h>
int main()
{
static char* buf;
buf = (char*)malloc(20*sizeof(char));
scanf("%s",buf);
while(buf[0] != NULL)
printf("\n%s\n",buf++);
free(buf);
buf=NULL;
system("pause");
return 0;
}
执行期间的消息框 free(buf):
Windows 在 clean_rough_draft.exe 中触发了一个断点。
这可能是由于堆损坏,这表明 clean_rough_draft.exe 或其已加载的任何 DLL 中存在错误。
这也可能是由于用户在 clean_rough_draft.exe 获得焦点时按 F12。
输出窗口可能有更多诊断信息。
什么原因?我只想释放内存而不会泄漏...