MSVCR90分配的8192大小内存是什么
在调试程序的过程中(VC6编译器,c++语言),发现BoundsChecker有时候会报告内存越界(Dynamic memory overrun)。说是向8192大小的buffer拷贝一段17490大小的数据导致越界。但是很显然这块内存分配的时候大小明显不只这么一点,而且检查buffer指向的内存,从buffer前面表示buffer大小的几个字节看也是正确的。观察内存的分配历史,发现MSVCR90有在相同的位置分配8192大小的数据,所以我认为BoundsCheck一定是以这个8192作为它判断的依据了。可是有人知道这个8192大小的buffer应该是做什么用的吗?什么情况下我用malloc分配出来的内存会与其吻合呢?
还有一个现象,就是这个出问题的buffer它分配出来的内存地址与其他的有一定的差距,似乎是不应该在这种地址空间中出现,有没有办法知道分配内存是否超出了线程可以分配的地址空间呢?望知道任何知道一点线索的达人不吝赐教!谢谢!