还可能有个原因。
应用程序向 linux 内核申请内存的时候,为了防止申请到其它进程不要的内存,读到隐私的数据,内核会先把内存段清零再返回给进程。
linux 下的进程申请栈空间使用的是 mmap(MAP_STACK),所以拿到的内存可能是清零后的内存。
【 在 foliver 的大作中提到: 】
: 起因是有一个程序到vs下调试,直接报未初始化下标数组越界。可是这在linux下运行的很好啊。一看代码,果然没有初始化。
: 然后写个测试程序,gcc下果然是0。
: Ubuntu16.04下测试的
: ...................
--
FROM 27.154.93.*