urenai 发表于 2022-7-29 04:13:09

[已解决] 耐人寻味的错误。

本帖最后由 urenai 于 2022-7-29 17:00 编辑

Visual Studio报错CRT detected that the application wrote to memory after end of heap buffer.

原因是:我只需要50个字节的内存长度,我刚好申请了50个字节。在离开释放内存是导致CRT什么的错误。
解决办法:申请内存时,多申请一些。


static/image/hrline/3.gif



使用HPPULL服务器组件
用户进入时,分配内存,地址是:2421234623248。
在离开 返回时,销毁内存,地址也是:2421234623248 。

我调试输出了内存地址,是一样的。没有错误。
而直接编译却一切正常。那么,为什么调试的时候会报错呢??不应该啊。

Debug Error!

Program: ...Server\_int\_Server\debug\x64\linker\Server.exe

HEAP CORRUPTION DETECTED: after Normal block (#48483) at 0x00000233BCD46310.
CRT detected that the application wrote to memory after end of heap buffer.


(Press Retry to debug the application)





static/image/hrline/4.gif

另外,反映个问题。
添加模块时,只要点了全选,即使一个一个的全点取消了,也无法点确定。


urenai 发表于 2022-7-29 05:09:20

离开之后就没有在使用过该内存。

下面这个是重复释放内存地址的 错误提示,明显,我上面的错误跟这个不一样。
Debug Assertion Failed!

Program: ...Server\_int\_Server\debug\x64\linker\Server.exe
File: minkernel\crts\ucrt\src\appcrt\heap\debug_heap.cpp
Line: 904

Expression: _CrtIsValidHeapPointer(block)

For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.

(Press Retry to debug the application)








页: [1]
查看完整版本: [已解决] 耐人寻味的错误。