【发布时间】:2021-02-25 03:03:49
【问题描述】:
*当我调用用户定义函数时,我收到以下错误:`
error: invalid types ‘double[unsigned int]’ for array subscript
44 | C[i][j]=0;
...
用户定义代码:
void Matrix(const double * A, const double *B, double * C){
for(unsigned int i=0;i < 4;i++)
{
for(unsigned int j=0;j < 4;j++)
{
C[i][j]=0;
for(unsigned int k=0;k < 4;k++)
{
C[i][j]+=A[i][k]*B[k][j];
}
}
}
}
我们将不胜感激。
【问题讨论】:
-
C的类型为double*。那么C[i]就是double。那么C[i][j]就没有意义了。 -
@IgorTandetnik double * C 不能用来定义矩阵?
-
嗯,就 C++ 编译器而言,
double* C是一个指向doubles 数组的指针。如果您的代码想要将其解释为矩阵,则由该代码为每个元素计算到该数组的适当偏移量。 -
@IgorTandetnik 我明白了,我们在 C++ 中使用指针