Chunk** chunks[8][8];
World () : Scene () {
for (int xx = 0; xx < sizeof(this->chunks)-1; xx++) {
for(int yy = 0; yy < sizeof(this->chunks[xx])-1; yy++) {
/* Here is where I get compilation errors */
this->chunks[xx][yy] = new Chunk(0.1f , 0.1f);
}
}
}
&#34;写入大小为8&#34;和&#34;无法将'Chunk *'转换为'Chunk **'
Chunk构造函数需要两个浮点数(float x,float y)。 我该如何填充这个二维数组?
(刚开始学习C ++,之前我写过Java)
答案 0 :(得分:0)
new Chunk(0.1f, 0.1f)
返回了什么?类型为Chunk*
的指针。
this->chunks[xx][yy]
的类型是什么? 2D阵列中的一个元素,类型为Chunk**
。
由于类型安全,您无法将Chunk*
分配给Chunk**
。
将Chunk** chunks[8][8];
更改为Chunk* chunks[8][8];
。
答案 1 :(得分:0)
chunks[][]
数组中的每个项目都有Chunk**
类型,但new Chunk()
运算符返回指向Chunk(Chunk *)的指针,这就是为什么你无法将'Chunk *'转换为' Chunk **'错误。
要解决此问题,您应该重新声明块:
Chunk* chunks[8][8];
答案 2 :(得分:0)
清除指针不接受初始化。
Chunk * chunk;很好,你可以说chunk = new int [8] [8]或......
例如,指针用法的简单示例: http://www.cplusplus.com/forum/general/9508/
对于转换错误,如果你正在使用struct或class,我可以建议***可以被认为指针pointest一个plointer;在你的情况下是2d数组。