簡體   English   中英

使用realloc獲得的擴展內存包含了什么?

[英]What are the contains of the extended memory obtained using realloc?

當我使用realloc來重新調整我之前使用calloc初始化(一個數組)的內存時,它是否仍然在整個緩沖區中保持為0? 或新部分未初始化?

考慮到您增加了已分配內存的大小, 擴展內存區域將具有不確定的值。

引用C11 ,章節§7.22.3.5,( 強調我的

[...]新對象的內容應與解除分配之前的舊對象的內容相同,直到新舊大小中的較小者為止。 新對象中超出舊對象大小的任何字節都具有不確定的值。

不,遺憾的是realloc不會初始化分配的“新”部分。 所以你必須自己做。 但是,“舊”部分將保留其價值,所以如果你沒有改變它,你的所有0都將保持在那里。

暫無
暫無

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

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