我在编译下面的代码时遇到了问题。编译器指出:使用typedefs,多维数组和指针时发生编译器错误
Assigning to 'RawChunk::Ptr' (aka 'unsigned char (*)[128][16]') from incompatible type 'RawChunk::Chunk *' (aka 'unsigned char (*)[16][128][16]');
有谁知道我在做什么错?这似乎是一个简单的错误,但我不知道我应该改变什么。
template <int dim>
class RawChunkWindow {
public:
typedef unsigned char (*Ptr)[ChunkDimensions::MAX_Y][ChunkDimensions::MAX_Z];
typedef unsigned char Chunk[ChunkDimensions::MAX_X][ChunkDimensions::MAX_Y][ChunkDimensions::MAX_Z];
RawChunkWindow() {
for (int i = 0; i < dim; ++i) {
for (int j = 0; j < dim; ++j) {
window[i][j] = &payload[i][j]; //compiler complains here
}
}
}
private:
Ptr window[dim][dim];
Chunk payload[dim][dim];
};
数组是邪恶的。 – Managu 2012-07-13 02:31:13