所谓编程,便是与计算机斗智斗勇的过程。其中,C语言的malloc函数,便是这场斗争中的一大亮点。malloc,一个让人又爱又恨的家伙,分配内存于它而言,轻而易举;可若稍有不慎,内存泄漏、程序崩溃,它也能让你痛不欲生。 今天,就来谈谈这个让人欢喜让人忧的malloc函数。当然,我不是来教大家如何使用的,而是要以一种冷嘲热讽的口吻,揭示它的“风采”。
初识malloc
你若是个编程小白,或许会问:“malloc是何方神圣?”好吧,我告诉你,它是C语言标准库函数,全名memory allocation,意为“内存分配”。听起来是不是很高大上?然而,它却是个让人捉摸不透的家伙。
malloc的“个性”
malloc函数有两个参数:size和nothrow。size嘛,顾名思义,就是你要分配的内存大小;nothrow则是个神奇的玩意儿,当设置为0时,表示分配内存失败时,malloc不会抛出异常。多么贴心啊,malloc都为你考虑到了失败的情况! 可是,malloc这厮却有个让人抓狂的“个性”:它只负责分配内存,至于内存里有什么,它可不管!这就意味着,你用malloc分配了一块内存,里面可能全是垃圾数据。这可真是“屎壳郎碰上粪球——臭味相投”!
malloc的“才艺”
malloc函数最擅长的事情,莫过于“坑人”。不信?请看以下示例: