簡體   English   中英

將 calloc vs malloc 用於結構的動態數組

[英]using calloc vs malloc for dynamic array of struct

我讀過 calloc 和 malloc 之間的區別是 calloc 將 memory 初始化為聲明類型的默認值。

  1. 對於struct,默認值是多少?
  2. 對動態結構數組使用 calloc 和 malloc 有區別嗎?
  3. 結構的成員也會被初始化嗎?

calloc()會將整個分配的內存范圍初始化為零。 它與您要投射到的類型無關。

malloc()使內存的內容處於未指定狀態。

calloc功能不適用於給定類型初始化內存的默認值,而事實上它不能因為它知道有關該內存將被用於類型一無所獲。

所做的設置內存的所有位0在大多數實現你很可能會遇到,這意味着,整數和浮點類型的值將是0和指針類型將是NULL。 關於結構和/或數組,這將適用於任何成員,此外,結構內的任何填充也將所有位設置為 0。

calloc() 會將整個分配的內存范圍初始化為零。 它與您要投射到的類型無關。 Malloc() 函數將創建用戶指定大小的單個內存塊。 Calloc() 函數可以為一個變量分配多個內存塊。 Malloc 函數包含垃圾值。 calloc 函數分配的內存塊總是初始化為零。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM