2011-12-26 94 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(){返回的数据;} 也许你需要这样的事?