我在編譯下面的代碼時遇到了問題。編譯器指出:使用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