MFC中malloc分配的内存,使用free出错(急等)
MFC写的对话框程序,有调用dll,但是malloc与free都是在exe中实现的,没有在dll中调用
程序malloc之后不使用free没有问题,使用free就出问题。
程序的属性设置的是“在共享中DLL中使用MFC”,更改属性,设置为“在静态库中使用MFC”后,结果一样
为什么一使用free就出错?
不用的话,malloc开辟的内存,在程序结尾是否能够被清除干净? MFC?内存?free
[解决办法]
肯定是这个原因:分配的内存块,写操作时尾部越界了,
free时会判断尾部额外标记是否被改写,如果是的话就报异常。
你这样观察:malloc之后马上看该内存尾部,free时再看是被改写成什么了。