本主题leadu回的第一帖:
现代os拿过来的都是0,vc调试版做了增强给填充的
bxdx回复leadu:
什么系统会把内存缺省置零?
leadu回复bxdx:
基础扎实一些的,有很多方面知道os给过来的是清0过的,
比如win sdk开发的应该看过...(windows的VirtualAlloc)
然后eGust怼leadu:
要不你再瞅瞅 malloc 调用的 HeapAlloc?举一个特例有啥用啊
从leadu几帖来看,他说的os指的就是windows kernel,这点在我阅读下来是没有歧义的,而且他说的符合事实啊。eGust这位老兄硬是给掰弯到malloc去,说malloc不清零,然后说话还很冲不是么。
我有点纳闷的是:malloc从标准上来讲就是不清零的,因为另有一个清零的函数calloc。这还争个啥呀。。
【 在 ilovecpp (cpp) 的大作中提到: 】
: 他意思是malloc/free每次调用都填充0xCD/0xDD,和mmap/VirtualAlloc每次调用都填充0,两者没有一一对应关系,基本上是无关的。
: 即使malloc想要每次调用都填充0,也不可能依赖后者自动就达成了。
: 所以别人问malloc为什么填充0xCD而不是0,你不能拿mmap的行为来回答,因为malloc的内存不是每次都从mmap/brk来。
: ...................
--
FROM 101.84.13.*