之前曾經介紹過如何 動態宣告二維陣列, 可是彩色影像是由 RGB 三個色彩所組成, 如果想用一個三維陣列來儲存一張彩色影像的 RGB 色彩值, 那又要該如何修改程式呢?
// 標頭檔
#include <iostream.h>
// 宣告
int ***iComponent;
// 程式
try
{
iComponent = new int **[3];
for (i=0;i<3;i++)
{
iComponent[i] = new int *[20];
for (j=0;j<20;j++)
iComponent[i][j] = new int [40];
}
}
catch (std::bad_alloc)
{
ShowMessage("Could not allocate memory...Bye");
exit(-1);
}
// 使用測試
iComponent[2][19][39]= 10;
ShowMessage(AnsiString(iComponent[2][19][39]));
注意: 上述程式為了程式的可讀性, 用了全型的空白" "來控制部落格文章的內縮顯示。因此, 如果你要直接複製上述程式到 C++ Builder 執行, 請務必將全型空白" "改成半型空白" ", 否則, 編譯時發出現以下的錯誤訊息。:
[C++ Error] Unit1.cpp(40): E2206 Illegal character ' ' (0xa140)