C語言-堆內存申請和釋放
大家在使用函數的時候避免不了使用堆內存,堆內存是一個匿名內存,它里邊的內容是不能標識符進行訪問的,只能使用指針進行訪問,而且C語言的標準庫函數給我們提供了兩個堆內存的申請函數,但是這兩個函數到底有什么區別呢?
malloc函數
相信大家對這個函數并不陌生,這個函數是用來像內存中的堆空間申請連續的存儲單元,這個函數有一個參數就是我要申請的字節大小,他的返回值是一個void*的指針類型,在使用的時候要記得強轉為自己所需要的指針類型哦!
void* malloc(size_t size);
calloc函數
calloc函數也是一個堆內存空間申請函數,但是與malloc不同的是,它有兩個參數,第一個是要分配幾塊內存,第二個參數是要分配的內存塊的大小,他的返回值是一個void*的指針類型,此函數會對內存進行初始化,初始化的值為0;在使用的時候要記得強轉為自己所需要的指針類型哦!
void* calloc(size_t num, size_t size);
最重要的一點,在使用完malloc和calloc函數申請的內存空間之后,要記得及時使用free函數釋放申請的內存空間,如果不及時釋放,會造成內存泄漏哦。。。
void free(void* ptr);
浙公網安備 33010602011771號