c++ - 取消引用指针算术后出现类型错误?

标签 c++

我很好奇为什么下面的代码不起作用。特别是,编译器似乎将 *(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/

相关文章:

c++ - 有没有办法在 Halide Generator 中将两个输入图像堆叠到一个 4 维缓冲区中?

c++ - 使用N-API时如何避免段错误?

c++ - 多维 vector 和指向 vector 的指针

c++ - Windows 工具栏 - 控制按钮大小和填充

带网页的 C++ 输出

c++ - OpenMP 临界区带来意想不到的性能提升

c++ - 使用二进制信号量作为计数信号量

C++:删除矩阵中的重复数字

c++ - 如何在 CentOS 8 docker 上安装 gcc/g++ 9 (centos :latest)

python - 从 Visual Studio 文件构建动态库