realloc报堆错误
部分代码如下:
if (num >= sumLst) {
sumLst += 1000;
stateLst = (int *) realloc(stateLst, sizeof(int)*sumLst);
featId = (int *) realloc(featId, sizeof(int)*sumLst);
}
说明:主工程为a,依赖了库b.lib.int *变量stateLst、featId都是在工程a中定义的。
之前在a中用malloc为上述两变量申请了空间。先在在b.lib中的.c文件中用realloc重新申请空间。
执行stateLst = (int *) realloc(stateLst, sizeof(int)*sumLst);未报错。
单步F10执行featId = (int *) realloc(featId, sizeof(int)*sumLst);时,报错如下:
Windows 已在 a.exe 中触发一个断点。
其原因可能是堆被损坏,这说明 a.exe 中或它所加载的任何 DLL 中有 Bug。
原因也可能是用户在 a.exe 具有焦点时按下了 F12。
输出窗口可能提供了更多诊断信息。
百式不得其解,只好求助