4
回答
linux和windows内存分配方式不一样?
百度AI开发者大赛带你边学边开发,赢100万奖金,加群:418589053   

 

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

举报
Qulc
发帖于6年前 4回/998阅
共有4个答案 最后回答: 6年前

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

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

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

 

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

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

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

 

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

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

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

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

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

 

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

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