[英]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.