最近下載了一篇論文的代碼,但是由于編譯器原因,無法動態宣告一個指標陣列,后來經過多方查找資料,找到解決方法,特此記錄一下,
對于靜態宣告指標陣列資料比較多,此類方法缺點在于陣列長度不能靈活變化,在編譯時就要確定,不夠“自動化”,其宣告方法為:
1 uchar *q[10] 2 for(int i=0;i<10;i++) 3 { 4 q[i]=new uchar (&this) 5 }
C++可以使用new動態分配陣列,而動態宣告資料比較少,語法稍繁瑣,但是“自動化”程度較高,其宣告需要使用到二階指標,原理有點像二維陣列使用二階指標實作,且可以在一個維度不用指定長度大小,具體方法為:
uchar gaussians = means.size();
uchar** p=new uchar* [gaussians];
for(int i=0;i<10;i++)
{
p[i]=new uchar*[this];
}
最后還要記得使用delete將new出來的空間釋放掉:
for(int j=0;j<10;j++) { delete p[j]; } delete[] p;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/51095.html
標籤:C++
下一篇:C++ 虛繼承
