c++中的變量做數組長度


在c++中時不支持變量作為數組長度參數的,如 int n=10;byte bs[n];   這樣寫會提示編譯錯誤”表達式必須含有常量值“。

雖然用變量聲明數組大小會報編譯錯誤,但是可以通過指針來動態申請空間實現動數組長度的變量賦值,寫法如下:

1 int length = 10;
2 int * varArray;
3 varArray = new int[length];

這樣varArray就可以當做數組來用了,這個數組的長度可以在程序運行時由計算得來。如果是普通的數組如int is[10] 編譯時必須能確定數組長度,不然會報編譯錯誤,這樣靈活性受限比較大。我想這個就是new的存在原因之一吧,在棧中分配的內存,大小都是編譯時就確定好的,如果想在運行時來動態計算使用內存的大小的話,就要用new這樣的動態分配函數,來達到更高的靈活性。

可以自己聲明一個結構體,來代表這個指針實現的數組,這樣可讀性會高點,用起來也方便點。

注意:c++ 用new分配空間以后,不用的時候要記得delete釋放內存,不然會有內存泄露問題。


免責聲明!

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



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