靜態數組和動態數組的區別


靜態數組在內存中位於棧區,是在定義時就已經在棧上分配了固定大小,在運行時這個大小不能改變,如:int a[10];

在函數執行完以后,系統自動銷毀;

動態數組是malloc或者new出來的,位於內存的堆區,它的大小是在運行時給定,並且可以改變其,如:
int *a;
a = new int[10];動態數組,其創建麻煩,使用完必須由程序員自己通過free或者delete釋放,否則嚴重會引起內存泄露。new[]/delete[]

malloc/free  new/delete 區別

他們都是對堆區的操作,程序員申請內存,用完要記得釋放,否則會內存泄漏,多次申請釋放,會造成堆區碎片;

new/delete是操作符,malloc/free是標准庫函數,前者可以重載,可以有構造和析構函數,可以返回某種類型對象的指針,后者返回void指針。
————————————————
版權聲明:本文為CSDN博主「花雨笑笑」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_37715308/article/details/68069892


免責聲明!

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



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