Re: [問題] 怎樣把二維陣列傳給另一個function
※ 引述《y2jj (.)》之銘言:
: #include <stdio.h>
: #include <stdlib.h>
: int x,y;
: void sub(int b[x][y]){
: …
: }
: void main(){
: printf("x:");scanf("%d",&x);
: printf("y:");scanf("%d",&y);
: int a[x][y];
: sub(a);
: }
: 錯誤訊息:variable-size type declared outside of any function
: 我想讓副程式sub知道陣列維度
: 不知道錯在哪邊
: 請各位前輩指點 謝謝~~~
最大的問題出在 void sub(int b[x][y]) 這行,
靜態陣列使用變數大小。
//事實上,main 函式中的 int a[x][y] 應該也是不合法的。
陣列的本質是指標,
最佳的解決辦法是傳入陣列指標及大小,再判斷邊界,
例如
void Sub( int *array, int row, int col )
搭配 array[i*row+col] 參考,
問題便解決了!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.161.121.214
推
03/14 20:45, , 1F
03/14 20:45, 1F
→
03/14 21:20, , 2F
03/14 21:20, 2F
→
03/14 21:42, , 3F
03/14 21:42, 3F
→
03/14 21:44, , 4F
03/14 21:44, 4F
→
03/14 21:47, , 5F
03/14 21:47, 5F
→
03/14 21:48, , 6F
03/14 21:48, 6F
→
03/14 21:48, , 7F
03/14 21:48, 7F
※ 編輯: gba356 來自: 218.161.121.214 (03/14 21:49)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 6 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章