如果我没有选择描述性或简洁的名称,我很抱歉。很多问题听起来很相似,但我一直找不到我要找的东西。我想要做的是在某处存储一个二维指针数组,并将某个对象中的一个变量分配给该数组以便能够访问它。
这是一些示例代码,它们与我在一个更大的项目中遇到的编译错误相同。
#include <iostream>
using namespace std;
struct X{
float n, * b[8][8];
X(){
n = 1;
b[1][5] = &n;
cout << *(b[1][5]) << endl;
}
void Set(float * c[8][8]){
b = c;
cout << *(b[1][5]) << endl;
}
};
main(){
float m, * a[8][8];
m = 2;
a[1][5] = &m;
X obj;
obj.Set(a);
}
我希望在这段代码中发生的是一个 X 对象从它自己的二维数组开始,b[1][5] 指向的值应该打印为“1”。然后将 main 方法的二维数组 a 传递给对象的 Set() 方法并分配给它的数组变量。然后 b[1][5] 指向的值应打印为“2”。
但是,我不知道 Set() 参数 c 应该是什么类型。我明白了
error: incompatible types in assignment of ‘float* (*)[8]’ to ‘float* [8][8]’
当我尝试编译时。至于我为什么要这样做,我正在尝试使用指向对象的指针数组,而不是浮点数,但这是同样的错误。