我有這兩個功能:如何在另一個函數中訪問這個二維數組?
void insert(void) //inserts values in the bidimensional array
{
int array[d][d]; // d is the value given by the user elsewhere
int a = 0;
for (int i = 0; i < d; i++){
for (int j = 0; j < d; j++){
array[i][j] = (d*d) - a;
a++;
}
}
}
void show(void) //prints the values
{
for (int i = 0; i < d; i++){
for (int j = 0; j < d; j++){
printf("%d", array[i][j]);
}
printf("\n");
}
}
我的問題是,該節目()函數只打印零(0),但這些都不是正確的價值觀。我知道值插入正確,因爲當我把printf(「%d」,數組[i] [j]);在insert()函數的循環中,它正常打印。所以我的猜測是show()函數不訪問數組的值,因爲它是在另一個函數中聲明的。
所以我試圖讓該數組全局寫入函數外,但它給了我錯誤:「變長數組聲明不允許在文件範圍」,所以我試圖把它放在main()中,在調用之前上面的兩個函數,但我得到了另一個錯誤:「未使用的變量」數組「」。
那麼誰能幫我弄清楚如何在show()函數中訪問該數組?
P.S.我想要這兩個功能:一個獲取和其他顯示數字,我不想要一個單一的功能。
你有很多不確定的變數!你在哪裏定義了d或v? – Rizier123 2014-11-06 03:15:42
對不起,它們實際上是相同的變量,我試圖簡化並最終拒絕循環部分。但它已經得到糾正,我改變了v爲d。 d是用戶在代碼的其他部分給出的值,這只是我遇到麻煩的部分。 – Gabriel 2014-11-06 03:23:47
在'show'中沒有聲明'array'。你有一個同名的全局變量嗎? – 2014-11-07 10:46:13