c++四種分配內存的方法整理


1 calloc 函數: void *calloc(unsigned int num, unsigned int size)

按照所給的數據個數和數據類型所占字節數,分配一個 num * size 連續的空間。
calloc申請內存空間后,會自動初始化內存空間為 0,但是malloc不會進行初始化,其內存空間存儲的是一些隨機數據。

2 malloc 函數: void *malloc(unsigned int size)

在內存的動態分配區域中分配一個長度為size的連續空間,如果分配成功,則返回所分配內存空間的首地址,否則返回NULL,申請的內存不會進行初始化。

3 realloc 函數: void *realloc(void *ptr, unsigned int size)

動態分配一個長度為size的內存空間,並把內存空間的首地址賦值給ptr,把ptr內存空間調整為size。
申請的內存空間不會進行初始化。

4 new是動態分配內存的運算符,自動計算需要分配的空間,在分配類類型的內存空間時,同時調用類的構造函數,對內存空間進行初始化,即完成類的初始化工作。動態分配內置類型是否自動初始化取決於變量定義的位置,在函數體外定義的變量都初始化為0,在函數體內定義的內置類型變量都不進行初始化。

 

轉載:https://blog.csdn.net/hyqsong/article/details/50951937


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM