我很好奇为什么以下代码不起作用。特别是,编译器似乎将*(result + i)视为gVector3类型而不是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;
}
答案 0 :(得分:2)
如果gVector3是一个类,那么它可能会重载operator[]
,这是你应该使用的。否则,您将对对象本身执行指针运算。试试这个:
(*result)[i] = data[i][index];