【发布时间】:2021-07-29 23:03:56
【问题描述】:
下面的简化代码不正确。我想写入提供给operator() 的数组YY_,想知道怎么做?似乎问题在于它假设复制指针复制数组的内容?!
double *computeY(double const *const *xx){
const int i0 = 0;
const int i1 = 1;
static double YY[2];
YY[0] = xx[i0][0] + xx[i1][0];
YY[1] = xx[i0][1] + xx[i1][1];
return YY;
}
struct computeYFunctor{
computeYFunctor(){}
bool operator()(double const *const *xx_, double* YY_) const{
YY_ = computeY(xx_);
return true;
}
};
【问题讨论】:
-
复制指针不会复制数组的内容。
-
您将
xx_传递给函数。将YY_作为第二个参数传递有什么问题?无需return任何东西。其他一切都没有改变。 -
复制指针就是这样做的,复制指针。目标是什么?我在你的问题中没有找到。
-
指针的副本是指向同一个对象的另一个指针。指针是它们可能指向的对象的独立实体。
-
@TedLyngmo 我只是按照这里的方式建议使用指针作为返回值然后遍历数组:tutorialspoint.com/cplusplus/… 仍然不确定有什么区别