粗犷地说,C语言就像个拿着铁锹的糙汉,一锹一锹地挖出内存的沟壑。那些函数,尤其是开辟空间的,简直就是糙汉手中的那把铁锹,用得好能挖出金矿,用不好,哼,那就是给自己挖坑。
你说分配内存这档子事儿,简直就像是在人生的大道上摆地摊,占一块地儿,还不能随便撤摊儿。malloc、calloc、realloc,这三个哥们儿,就像三兄弟,各有所长,但都得小心伺候。你问为什么?哈,这就像问为什么摆地摊还得担心城管一样。
malloc,这老大哥最直接,你跟他说要多少,他就给你划拉多少,不多不少。但别忘了,这地儿可是野地,啥都没有,得自己打理。calloc呢,细心,不光给地儿,还给你初始化成零,生怕你起步不稳。至于realloc,那就是个变戏法的,地儿不够了,他能给你换个大的,但人心隔肚皮,他给你挪的地儿不一定就在原地儿。
这开辟空间的活儿,跟找对象似的,得用心。用错了,分分钟给你弄个内存泄漏,那可是欠下的情债,不好还。你说,这怎么就成艺术了?艺术你懂吗?就是在有限的资源里,玩出无限的花样。在C语言这亩三分地里,你就是个画家,内存就是你的画布。
来,给内存画个饼。画大了,realloc;画小了,那就算了,浪费就浪费吧,人总不能在一棵树上吊死。可别忘了,画布就那么大,你画得天花乱坠,也得有人收拾烂摊子。free,这哥们儿就是那个清理工,你画完了,他得把画布擦干净,留给后人。
别忘了,C语言这糙汉,可不好惹。你给他分配多了,他乐呵呵;分配少了,他能给你甩脸子。你若是不理他,他能让你程序崩溃,让你哭都没地儿哭。
这就是C语言的开空间函数,糙,但是有用。糙得让人又爱又恨,爱它的人能在这粗犷中找到精准,恨它的人,大概就是那些被内存泄漏整得死去活来的吧。
这艺术,不是谁都能玩得转的。但玩转了,那就是大师。大师都是从糙汉走过来的,不是吗?咱们,都是这条路上的糙汉,拿着铁锹,挖着属于自己的一亩三分地。别忘了,糙归糙,但心里得有那片艺术的海洋。咱们,是艺术家,C语言的艺术家。