0
void enterTwoArrays()
{
printf("Enter m!\n");
scanf("%d",&m);
printf("Enter n!\n");
scanf("%d",&n);
int arr[m][n];
printf("Enter m2!\n");
scanf("%d",&m2);
printf("Enter n2!\n");
scanf("%d",&n2);
int arr2[m2][n2];
for(i=0; i<=m-1; i++)
{
for(j=0; j<=n-1; j++)
{
scanf("%d",&arr[i][j]);
}
}
for(i=0; i<=m2-1; i++)
{
for(j=0; j<=n2-1; j++)
{
scanf("%d",&arr2[i][j]);
}
}
}
void addition(int arr[m][n], int arr2[m2][n2])
{
int arr3[m][n];
for(i=0; i<=m-1; i++)
{
for(j=0; j<=n-1; j++)
{
arr3[i][j]=arr[i][j]+arr2[i][j];
}
}
}
嘿,我確實有問題。我在C中獲得了這兩個函數。這個想法是,在第一個函數中,我將創建並填充數組。第二個函數將添加兩個數組的值。但是當我嘗試時,編程就會崩潰。我想我知道問題在哪裏。它的cuz我的數組是本地的,我不能將它們發送到主函數的第二個函數。那麼我該如何解決這個問題呢?我不能在不知道n和m變量的情況下在main/be4 main中聲明這些數組。如何讓我的數組在C函數全局作出?
您可以將指針傳遞給數組。 –
將函數指針作爲參數傳遞給數組。 –
我的代碼本身沒有任何內在的錯誤,但它依賴於'm2'和'n2'分別至少和'm'和'n'一樣大。如果在給定的運行中不是這種情況,那麼函數'addition()'將試圖訪問邊界外的'arr2'。也許你應該只讀取一組通用維度,並將其用於兩個數組。 –