首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

linux64与win32开释结构体时表现不一样,求解

2013-06-25 
linux64与win32释放结构体时表现不一样,求解对于结构体,先释放第一个指针成员,再释放结构体指针,这时候在l

linux64与win32释放结构体时表现不一样,求解
对于结构体,先释放第一个指针成员,再释放结构体指针,这时候在linux64下,第二个数组成员或指针成员的内容没变,而在win32下发生变化。代码如下:


[解决办法]
访问已经释放的内存,这么做是没有意义的,你要测试是不是已经释放,做个循环,再在系统中查看进程所占内存的大小有没有变化,没有变化说明已经释放,否则有内存泄露~~~~~~~
[解决办法]
引用:
Quote: 引用:

访问已经释放的内存,行为未定义,不必研究了

已经释放?那为什么内容没有变化?


只是尚未被别人占用而已!如果释放是用某个特定的数字覆盖整个区域,cpu 岂不要累死?
[解决办法]
内存释放过以后并不一定会马上清理的。
另外linux平台和windows平台的内存管理也有差异。没有可比性。

不过这也告诉楼主,C语言malloc的内存块里面的内容都是随机的。
所以,应该调用memset()初始化一下内存块。

热点排行