2011-12-26 110 views
2

我在C模板類++,看起來像這樣:如何返回指向多維數組的指針?

template <typename T, int xMax, int yMax, int zMax> 
class Volume { 
public: 
    T*[64][64] getDataPointer() {return data;} //compiler doesn't like this line 
private: 
    T data[xMax][yMax][zMax]; 
}; 

typedef Volume<unsigned char, 64, 64, 64> Chunk; 

編譯器不喜歡的回報,我有getDataPointer()。我想返回相同的類型,然後用它來傳遞給此函數:

void perlin2D(unsigned char (*chunk)[64][64]) 

有人可以告訴我該怎麼做嗎?

+0

您應該使用'xMax','yMax'和'zMax'來代替將64硬編碼到返回類型中。另外,C沒有模板,所以我刪除了C標籤。 – 2011-12-26 18:49:36

回答

8

更改簽名:

T (*getDataPointer())[64][64] {return data;} 
-1

牛逼*** getDataPointer(){返回的數據;} 也許你需要這樣的事?