C語言中初始化內存的方法


不知道大家在用vs的時候,有沒有試過出現“燙燙燙燙...”,出現的主要原因是這個軟件在初始化內存的時候默認對於未初始化的棧內存全部填成 0xcc,對應於漢字字符串看就是 燙燙燙燙……,對於未初始化的堆(new)內存全部填成 0xcd,對應於漢字字符串看就是 屯屯屯屯……。而一般使用內存前要重置內存中的內容,一般我們使用memset函數




char buf[1024];
//在使用這個地址的時候我們需要清空內存的信息,一般有兩種辦法,一種是運行期間完成,一種是編譯期間完成:

//運行期間
memset(buf, 0, sizeof(buf));

//在編譯期間就完成了
char buf[1024] = {0};

 

推薦使用 = {0} 這種形式,效率較高。
在最開始學習數據結構和算法的時候,因為C語言基礎不好,又沒有回顧,在寫數據結構的時候經常遇到數組不為空的狀況,后來重新補充這部分內容,才發現原來是這么低級的錯誤。


 
 

原文:https://www.jianshu.com/p/7b184fcd880b


免責聲明!

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



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