linux64与win32释放结构体时表现不一样,求解
对于结构体,先释放第一个指针成员,再释放结构体指针,这时候在linux64下,第二个数组成员或指针成员的内容没变,而在win32下发生变化。代码如下:
[解决办法]
访问已经释放的内存,这么做是没有意义的,你要测试是不是已经释放,做个循环,再在系统中查看进程所占内存的大小有没有变化,没有变化说明已经释放,否则有内存泄露~~~~~~~
[解决办法]
只是尚未被别人占用而已!如果释放是用某个特定的数字覆盖整个区域,cpu 岂不要累死?
[解决办法]
内存释放过以后并不一定会马上清理的。
另外linux平台和windows平台的内存管理也有差异。没有可比性。
不过这也告诉楼主,C语言malloc的内存块里面的内容都是随机的。
所以,应该调用memset()初始化一下内存块。