4
回答
linux和windows内存分配方式不一样?
华为云实践训练营,热门技术免费实践!>>>   

 

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

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

数组分配的时候是不是(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]
顶部