我很好奇为什么下面的代码不起作用。特别是,编译器似乎将 *(result + i) 视为 gVector3 类型而不是 float 。但是 result 是一个指向 float 数组的指针,对吧?那么取消引用指针不会返回一个 float 吗?您可以假设定义了 gVector3 和 gMatrix3。
/* returns the column vector at index i */
gVector3 gMatrix3::getColumn(unsigned int index) const{
gVector3* result = new gVector3();
for (int i = 0; i < 3; i++){
*(result + i) = data[i][index];
}
return *result;
}
最佳答案
如果 gVector3 是一个类,那么它可能会重载 operator[]
,这是您应该使用的。否则,您将对对象本身执行指针运算。试试这个:
(*result)[i] = data[i][index];
关于c++ - 取消引用指针算术后出现类型错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21506620/