所以我尝试查找一些看起来有用但最终没有用的东西。
我应该在一个单独的函数中将一个 6x8 矩阵初始化为一个二维数组。我有三个文件,一个主函数文件,一个函数文件和一个头文件。
这里是主要的相关代码
int plate[MAX_ROWS][MAX_COLS];
double A = 0, B = 0, T1 =0, T2 = 0, C = 0;
printf("\n");
printf("Welcome to the Heat Plate Simulation\n\n");
printf("Enter: Heat-A, Heat-B, Plate-1, Plate-2, Stab-Crit\n\n");
scanf("%lf%lf%lf%lf%lf", &A,&B,&T1,&T2,&C);
那我试试
initialize_plate(plate,T1, T2);
去
void initialize_plate(int plate[][MAX_COLS],double T1, double T2)
{
plate[MAX_ROWS][MAX_COLS] = {
{ T1, T1, T1, T2, T2, T2},
{ T1, T1, T1, T2, T2, T2},
{ T1, T1, T1, T2, T2, T2},
{ T2, T2, T2, T1, T1, T1},
{ T2, T2, T2, T1, T1, T1},
{ T2, T2, T2, T1, T1, T1}
};
return;
}
我收到的错误是 7P_functions.c:14:32: error: expected expression before ‘{’ token *plate[MAX_ROWS][MAX_COLS] = {
鉴于我对这个错误的研究,我唯一的猜测是它与已经初始化的数组有关,但我不确定如何纠正这个问题,而如果我在函数中而不是在函数中初始化数组main 不就是变成局部变量了吗?
任何帮助将不胜感激。
最佳答案
使用 memcpy
从临时数组中设置值。
void initialize_plate(int plate[][MAX_COLS],double T1, double T2){
memcpy(plate, (int [][MAX_COLS]){
{ T1, T1, T1, T2, T2, T2},
{ T1, T1, T1, T2, T2, T2},
{ T1, T1, T1, T2, T2, T2},
{ T2, T2, T2, T1, T1, T1},
{ T2, T2, T2, T1, T1, T1},
{ T2, T2, T2, T1, T1, T1} },
6*sizeof(int [MAX_COLS]));
return;
}
关于c - 初始化矩阵,C 中的预期表达式错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26876854/