gpt4 book ai didi

c - 免费异常(exception)c

转载 作者:行者123 更新时间:2023-12-01 15:05:54 25 4
gpt4 key购买 nike

我在函数的最后一行遇到一个异常,一个与 free 有关的异常。这里是:Windows 已在 HW1.exe 中触发断点。

这可能是由于堆损坏,这表明 HW1.exe 或其加载的任何 DLL 中存在错误。

这也可能是由于用户在 HW1.exe 具有焦点时按了 F12。

输出窗口可能有更多的诊断信息。

 void unicode(HANDLE file, DWORD sizeOfFile, int N) {
if(sizeOfFile - 2 == 0)
return;

_TCHAR* text = (_TCHAR*)malloc(sizeOfFile);

DWORD numRead = 0;

BOOL read = ReadFile(file, text, sizeOfFile, &numRead, NULL);
assert(read && (sizeOfFile == numRead));

int i = 0;
int lineNum = 0;
int lineStart = 0;
text++;
sizeOfFile--;
while(i <= sizeOfFile / 2) {
if(i == sizeOfFile / 2 && lineNum < N)
printLineUnicode(text + lineStart, i - lineStart, lineNum++);


else if(text[i] == '\r') {
if(lineNum < N) {
printLineUnicode(text + lineStart, i - lineStart, lineNum++);
}
i ++;
lineStart = i + 1;
}

i ++;
}
i -= 2;

int lineEnd = i;
while(i >= 0) {
if(i == 0 && lineNum < N)
printLineUnicode(text, lineEnd - i + 1, lineNum++);

if(text[i] == '\n') {
if(lineNum < 2*N) {
printLineUnicode(text + i + 1, lineEnd - i, lineNum++);
lineEnd = i - 2;
i --;
}
}
i --;
}
free(text);
}

最佳答案

您正在修改 text(参见 text++; 行),因此在函数末尾的指针将不同于分配函数返回的指针。不好。

保存指针并使用保存的指针释放内存...

关于c - 免费异常(exception)c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5290168/

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