一個關於動態多維數組的問題

同樣的錯誤,即使你年齡再大,也一樣會犯,Opps............

最近在做C#和C++的混合編程。昨天搞了堆棧平衡搞了好久,今天又解決了一個BUG,既開心又難過。


先看代碼:

unsigned char*** bytes2D=(unsigned char***)bytesArray;

for(int i=0;i<height/2;i++)
{
for(int j=0;j<scanStride/3;j++)
{
tmp=bytes2D[i][j][0]*0.114+bytes2D[i][j][1]*0.587+bytes2D[i][j][2] *0.299;
bytes2D[i][j][0]=bytes2D[i][j][1]=bytes2D[i][j][2]=tmp;
}
}

不得不說,初學的時候一定也會犯這樣的錯誤。


代碼的目的是爲了使用動態三維數組,可是編譯器不知道bytes2D每一維的長度,這就是關鍵所在了。

至於怎麼實現這樣的"動態多維數組"可以考慮百度"c++動態二維數組"作爲參考。

當然,有更好的方法你可以告知我(印象中可能有,但是已經不記得了)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章