C++基础问题.
char* pChar=new char[100];
...
delete [] pChar;
C++编译器是如何知道pChar分配的内存的大小并正确释放呢?
还有,如果我使用内存池,在中间内存池不够大进行了多次内存的重新分配,最后怎么保证内存正确释放掉呢?
问题是出在我写的一个插件,让一种不支持自定义数据类型的脚本语言能实现类似c/c++的struct的数据类型,要对用户脚本生成的自定义结构进行内存管理,发现重复运行有微小的内存使用增量产生,测试时循环生成,读写成员和释放一个结构体大约6个小时,内存增加了200k左右,不知道是不是发生了内存泄漏,但可以保证的是每个new在逻辑上都有对应的delete, codeguard捕捉不到任何错误.