【发布时间】:2023-03-31 16:10:01
【问题描述】:
首先:是的,我知道这是一个常见的话题,我已经尝试了几种建议的解决方案。没有什么对我有用(至少没有“好”代码),我终于尝试了这里描述的方式(jxh解决方案中的第二个变体): 2D array passing to a function
#include<stdio.h>
typedef double real32;
void Multiply_Matrix_Vector38(int n, int m, real32 A[n][m], real32 B[m], real32 Result[n]);
int main()
{
real32 A[3][8];
real32 B[8];
real32 Result[3][3];
int i;
for(i = 0; i < 8; i++) {
A[0][i] = i;
A[1][i] = i+1;
A[2][i] = i+2;
B[i] = i;
B[i] = i;
B[i] = i;
}
Multiply_Matrix_Vector(3, 8, A[3][8], B[8], Result[3]);
return 0;
}
void Multiply_Matrix_Vector(int n, int m, real32 A[n][m], real32 B[m], real32 Result[n])
{
uint8 i, j;
real32 sum;
sum = 0;
for(i = 0; i < n; i++ {
for(j = 0; j < m; j++) {
sum = sum + A[i][j] * B[j];
printf("A %f\n", A[i][j]);
}
Result[i] = sum;
sum = 0;
}
}
我仍然遇到不兼容的类型错误 - 如何解决?
【问题讨论】:
标签: c arrays pointers multidimensional-array