這裏是我的程序:我不知道爲什麼這個計劃不會編譯
#include<stdio.h>
#define COL 3;
void copy_row(int arr1[][COL], int rows, int arr2[], int r);
void copy_row(int arr1[][COL], int rows, int arr2[], int r){
int i;
if(r >= rows || r < 0)
return;
for(i = 0; i < COL; i++){
arr1[r][i] = &arr2[i];
}
}
int main(void){
return 0;
}
當我嘗試用gcc來編譯這一點,它說:「錯誤:之前預計‘]’‘;’令牌「在第4行和第6行。
此外,請參閱for-loop,將」arr1 [r] [i] = arr2 [i];「與「arr1 [r] [i] = & arr2 [i]」相同;「?哪個是(更正確)?
您不希望在#define行的末尾添加分號。 –
'#define'語句很少,如果有的話,以分號結尾。建議刪除尾隨分號,那麼唯一的編譯器消息是:warning:賦值使指針中的整數沒有對此行進行強制轉換:'arr1 [r] [i] =&arr2 [i];' – user3629249