我是否需要动态分配双数组来传递它们
Do I need to dynamically allocate double arrays to pass them?
这是一个简单的编译错误,我像这样分配双精度数组:
double mixmu[][1] = {{1},{-1}};
double mixvar[][1] = {{1},{1}};
double coef[] = {1,1};
我不能将这些作为双**对象传递吗?
error: no matching function for call to ‘MixtureModel::MixtureModel(int, int, double [2], double [2][1], double [2][1], Distribution*)’
./problems/MixtureModel.h:25: note: candidates are: MixtureModel::MixtureModel(int, int, double*, double**, double**, Distribution*)
我是否需要动态分配双精度数组来传递它们?
不,你没有!
您的误解/怀疑源于(不正确的)事实,即数组是指针
不!数组不是指针!!
在数组名称无效的情况下,数组名称有时会衰减到指向其第一个元素的指针。
二维数组不会衰减到双指针。它衰减到指向数组的指针。
您的声明必须是:
MixtureModel::MixtureModel(int, int, double [2], double [2][1], double [2][1], Distribution*);
或
MixtureModel::MixtureModel(int, int, double *, double(*)[1], double (*)[1], Distribution*);
好读:
如何在C++中使用数组?
相关文章:
- 如何找到大小'x'数组是否完全填充,在C++?
- 任意大小的 constexpr 数组是否可以用作 switch 语句中的案例?
- 在 constexpr 构造函数中初始化数组是否合法?
- 以这种方式初始化的 char 数组是否会自动添加空终止符?
- 检查反向数组是否与原始数组相同
- 如何检查二维字符数组是否有空字
- 检查数组是否等于的最快方法?
- 确定数组是否可以旋转 3 个连续的数组元素进行排序?
- 如何检查数组是否包含多个元素?
- 我在代码中收到一个运行时错误,该错误如何通过修改最多一个元素来查找数组是否可以变得不减少
- c ++ 如何断言 char 数组与否,检查 char 数组是否以 "0" 开头或包含"0"
- 下课时的数组是否可以正常工作?
- C++全局常量数组:是否保证合并(优化)到一个副本中
- 在 C++17 中声明大小为 0 的数组是否合法
- 如果在执行过程中替换二进制文件,"const"数组是否驻留在内存中?
- 临时数组是否可能
- 使用二维数组作为一维数组是否正确?可能会导致未定义的行为左右?
- 当有多个查询时,检查某些子数组是否排序的有效方法是什么?
- 用于检查 char 数组是否仅包含允许的字符的函数
- 检查数组是否'right' (C++)