c++ - 在另一个函数中使用返回的数组指针

标签 c++ arrays pointers

<分区>

我需要对两个 vector 进行点积,然后显示结果。据我所知,我能用 C++ 做的最好的事情就是返回结果 vector (指针)的地址。我目前正在使用此代码执行此操作:

// Dot product.
double * dot(double u[3], double v[3]) {
    double result[3];
    result[0] = u[0] * v[0];
    result[1] = u[1] * v[1];
    result[2] = u[2] * v[2];
    return result;

然后我需要打印结果,所以我有另一个接受指针的函数:

void pvec(double * ptr) {
    cout << "[" << *(ptr + 0) <<", " << *(ptr + 1) << ", " << *(ptr + 2) << "]\n";
}

这是行不通的。结果值都是垃圾。

我怎样才能使这项工作?来自 python,我真的觉得不能通过函数传递数组就像没有胳膊或腿,我无法正确玩指针游戏。

最佳答案

在我看来,最简单的方法是将 dot 原型(prototype)更改为以下内容:

  void dot(double u[3], double v[3], double result[3])

并根据它调整其余代码。

关于c++ - 在另一个函数中使用返回的数组指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37831620/

相关文章:

python - ValueError 和 odepack.error 使用 integrate.odeint()

c - 无法从以指针作为参数的函数内的主方法引用指针

c - 在代码中出现奇怪的段错误

c++ - 在内存中创建 GDI+ 位图,然后另存为 png

c++ - 在 Ubuntu(Netbeans) 和 Windows(Visual Studio 2012) 中编译相同的 C++ 代码

java - 单点对象和数组的解决方法

C语言: How to use memset to reset dynamic 2d array?

c++ - 方法调用中的参数无效

c++ - 如何在Windows 8中设置关联?

c# - 将 System.Array 转换为字符串 []