【发布时间】:2012-09-18 00:57:24
【问题描述】:
我有疑问:
void *a = malloc(40);
free(a);
如果我认为 malloc(40) 分配了 40 个字节的内存并返回该内存的地址,然后 free(a) 取消分配/释放该内存 但对驻留在其中的位模式不做任何事情记忆。所以,假设这块内存被分配为 void *b,然后在打印 b 指向的地址处的值时,会得到与原来相同的值,或者它给了我一个垃圾值,为什么?
【问题讨论】:
-
这不是“怀疑”。这是一个问题。 SO 是一个问答网站,而不是怀疑论者的博客。
-
@KerrekSB:我什至没有注意到“怀疑”部分,我习惯于与印度的人发电子邮件,他们的疑问将尽快得到澄清...... :-}
-
@FrerichRaabe:我已经注意到这一点很长时间了,但这对我来说从来没有意义......你可以怀疑耶稣(如果你的名字是托马斯),但你可以'不要怀疑
malloc! -
@FrerichRaabe 虽然我知道你来自哪里,但我必须同意 Kerrek 的观点,这一直是我的烦恼
-
@KerrekSB:我的意思是我有一个问题。如果伤害了你我很抱歉:P