This question already has answers here:
Can a local variable's memory be accessed outside its scope?
(20个答案)
3年前关闭。
我需要做两个向量的点积,然后显示结果。从我学到的知识,我可以用C ++做的最好的就是返回结果向量的地址(指针)。我目前正在使用此代码:
然后,我需要打印结果,因此我还有另一个接受指针的函数:
这是行不通的。结果值都是垃圾。
我该如何进行这项工作?来自python,我真的感觉无法通过数组传递函数就像没有胳膊或腿,而且我无法正确玩指针游戏。
并调整其余的代码。
(20个答案)
3年前关闭。
我需要做两个向量的点积,然后显示结果。从我学到的知识,我可以用C ++做的最好的就是返回结果向量的地址(指针)。我目前正在使用此代码:
// 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
原型更改为以下内容:
void dot(double u[3], double v[3], double result[3])
并调整其余的代码。
关于c++ - 在另一个函数中使用返回的数组指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37831620/