将指针设置为等于2d数组-无效的数组分配
Setting Pointers to 2d Array equal - Invalid array assignment
我有一个指向qint8:qint8 *data[200][8];
的2d数组的指针
我想将该指针传递给构造函数中的另一个类:
SomeClass.h也有qint8 *data[200][8];
SomeClass.cpp:
SomeClass::TilesetBehaviorsView(QWidget *parent, qint8 *behaviors[200][8]) ::QWidget(parent)
{
*this->items = *items;
}
我收到这个错误消息:
E:LearningCppMultidemensionalArrayssomeclass.cpp:10: Error: invalid array assignment
*this->data = *data;
^
我有一个指向
qint8
:qint8 *data[200][8];
的2d数组的指针
没有。您有一个指向qint8
的2D指针数组。如果你真的想要一个指向数组的指针,你必须这样声明:
qint8 (*data)[200][8];
然而,指向数组的指针在C++中通常不是很有用。您必须使用括号来访问其成员,例如:
qint8 a = (*data)[4][2];
有了C++11,就几乎不需要C样式的数组了。使用std::array
,它没有优先级、衰减或不可分配性的所有问题:
std::array<std::array<qint8, 8>, 200> data;
或者,给定整个数据结构的大小,考虑使用动态数组(std::vector
)。
相关文章:
- 多维数组 C++ 中数组下标的类型"int[int]"无效
- 数组下标的类型"float*[float]"无效
- 错误:数组下标的类型"int[int]"无效
- "错误:数组下标的无效类型'float [10001][float]'是什么意思?
- 错误:数组下标的类型"const bool[int]"无效
- 正在使用C 三元运算符中的字符串常数,一种无效的非效率数组的使用
- 数组下标编译的无效类型'int[int]'由于 -Wfatal 错误而终止
- 如何使用ISTream对象输入多个字符到对象的数组中?(and 0作为哨兵值.下面的我的代码将无效)
- 数组下标的无效类型INT [INT]
- 获取数组类型的无效错误
- 在结构中访问数组时无效使用非静态数据成员
- 从 c++ 中的函数对 2d 数组的转换无效
- Valgrind 显示无效的读/写错误,但我不使用 new 或 calloc,只使用向量和固定数组
- 当函数调用时,试图阻止数组更改时发生无效转换错误
- 使用多线程处理对象数组 - 无效使用 void 表达式错误
- 打印带有字符串的std::数组无效
- 将指针设置为等于2d数组-无效的数组分配
- 删除[]指针数组无效
- 用常量初始化数组无效
- 如何使数组无效