C++中慎用malloc


C++中慎用malloc

malloc是C語言中常用的內存申請方式,C++也支持,但是對於STL來說卻不兼容,取而代之的是new。

情景:曾寫過一個C與C++混合的項目,內存申請使用了malloc,同時使用了std::vector,程序中兩種結構之間進行了數據流通。但是程序運行時,部分指針的值被“莫名修改”,導致運行出錯。

使用gdb調試,觀察相關變量的內存地址,發現std::vector竟然可以覆蓋修改malloc此前申請的內存區域。明顯std::vector不識別malloc申請的內存,將這部分內存標記為未使用狀態。

解決方法:將所有malloc改為new,解決問題。


免責聲明!

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



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