为什么我不能在C++中填充这个 2D 数组?
Why can't I fill this 2D array in C++?
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);
}
}
}
"大小为 8 的写入无效"和"无法将'块*'转换为'块**'
Chunk 构造函数采用两个浮点数(浮点数 x、浮点数 y(。我应该如何填充这个二维数组?
(刚开始学C++,之前写过Java(
从new Chunk(0.1f, 0.1f)
返回什么?类型 Chunk*
的指针。
this->chunks[xx][yy]
的类型是什么?2D 数组中的元素,类型为 Chunk**
。
由于类型安全,不能将Chunk*
分配给Chunk**
。
将Chunk** chunks[8][8];
更改为Chunk* chunks[8][8];
。
数组
中的每个chunks[][]
项目都有Chunk**
类型new Chunk()
但运算符返回指向块(Chunk*(的指针,这就是为什么您无法将"Chunk*"转换为"Chunk**"错误的原因。
要解决此问题,您应该重新声明块:
Chunk* chunks[8][8];
Decleration 指针不接受初始化。
块* 块; 很好,你可以说块 = new int[8][8] 或...
例如,指针用法的简单示例:http://www.cplusplus.com/forum/general/9508/
对于转换错误,如果您使用的是结构体或类,我可以建议***,它可以被认为是指针指向的plointer;在您的情况下,2D 数组。
相关文章:
- 2D数组来自文本输入,中间有空格
- 如何使用用户输入在C++中正确填充2D数组
- 如何在C++中检查2D数组中负值的输入验证
- 当我在main中声明了我的2d数组时,为什么我的程序会退出
- 如何将以逗号和空格分隔的整数读取到 2D 数组中?
- 如何在C++函数中声明静态 2D 数组?
- 我已经阅读了很多关于 2d 数组的信息,但我在作业中使用它时遇到了麻烦
- 使用矢量将文本文件中的输入存储到 2D 数组中
- 获取 2D 数组 c++ 中的所有数字对
- 这是使用回溯的 nqueen 问题,但我使用了动态 2d 数组,我的程序编译良好,但不返回任何输出
- 如何在构造函数中使用初始值设定项设置具有相同值的 2d 数组?
- 在 Python 和 c++ 2d 数组初始化之间.这是怎麽?为什么呢?
- 如何创建一个所有行大小不同的 2D 数组,并且用户将指定每行将有多少个元素?
- 使用指针算法修改函数中的 2D 数组
- 在C++中初始化和打印 2D 数组
- 有没有办法使用输入的维度初始化 2d 数组中的所有项目而不循环C++?
- C++ 2D 数组写入多个位置
- 检测到堆损坏:在正常块 c++ 动态 2D 数组之后
- 如何从initializer_list初始化 2D 数组
- 交换函数不是在 C++ 中交换 2D 数组的元素