linux和windows内存分配方式不一样?

Qulc 发布于 2012/08/17 20:13
阅读 1K+
收藏 0

 

-
----用malloc定义一个动态数组,赋值后用free释放后输出。。
-
----linux下释放了前两个,空值为0
-
---windows下全部释放了,空值是随机数

加载中
0
骠骑将军
骠骑将军

数组分配的时候是不是(int *)malloc(len *sizeof(int))才行?

还有已经被释放的指针指向的内存具体是什么数,谁也说不清.你所谓的linux释放了前2个不对,只是恰好后三个对应的内存的值等于原来你输入的而已

0
樱宝宝
樱宝宝

别说windows和ubuntu了……就是ubuntu和ubuntu不同版本之间……

 

所以说……你使用free掉之后的指针指向的值是错误的……他和操作系统 编译器版本 使用的函数库 优化程度 debug or release版 都有关系……总之……偶然行为……这么用是不对的……

0
Qulc
Qulc

引用来自“樱宝宝”的答案

别说windows和ubuntu了……就是ubuntu和ubuntu不同版本之间……

 

所以说……你使用free掉之后的指针指向的值是错误的……他和操作系统 编译器版本 使用的函数库 优化程度 debug or release版 都有关系……总之……偶然行为……这么用是不对的……

第二个循环打印的应该是: pArr[j]
0
樱宝宝
樱宝宝

引用来自“屈利春”的答案

引用来自“樱宝宝”的答案

别说windows和ubuntu了……就是ubuntu和ubuntu不同版本之间……

 

所以说……你使用free掉之后的指针指向的值是错误的……他和操作系统 编译器版本 使用的函数库 优化程度 debug or release版 都有关系……总之……偶然行为……这么用是不对的……

第二个循环打印的应该是: pArr[j]
返回顶部
顶部