我很好奇为什么下面的代码不能工作。特别是,编译器似乎将*( gVector3 + i)视为浮点型,而不是浮点型。但是result是一个指向一个浮点数组的指针,对吗?那么,取消引用一个指针不会返回一个浮点数吗?您可以假定定义了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;
}发布于 2014-02-02 11:23:21
如果gVector3是一个类,那么它可能会重载operator[],这是您应该使用的。否则,你就是在对象本身上执行指针运算。试试这个:
(*result)[i] = data[i][index];https://stackoverflow.com/questions/21506620
复制相似问题