Re: [問題] 二維陣列利用函式改內容

看板C_and_CPP (C/C++)作者 (新人偉)時間16年前 (2009/09/28 17:50), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串3/4 (看更多)
※ 引述《tomore (小Q)》之銘言: ※ 引述《larryho (新人偉)》之銘言: : 請問一下各位大大,在C程式裡面,我現在在主程式中(main)裡有 : 一個存放字元的二維陣列(假設這樣 A[2][2] ),如果我想要用函式 : 的方式去更改或整裡裡面的內容,例如使用氣泡排序法去排序,這 : 樣的話我應該如何使用call by reference的方式去做?(主要問題在 : 該傳什麼形式的指標給函式(*ptr? *ptr[]?),還有函式內的指標不知 : 如何控制二維陣列(++ptr or what?)) : 第二個問題,如果這樣做的話,以一個良好的程式設計習慣來說,到 : 底好還是不好?因為直接用函式直接更改資料,感覺上有點不是很好 : 可是萬一資料量太大,如果又再設一個空間給它放,又怕會爆掉~ : 感謝各位的解答,新手問題,請多多包涵~ 依你的問題寫個簡單範例給你參考 void sort(int *ptr,int size){ //*ptr=array[0] //*(ptr+1)=array[1] ptr++; //*ptr=array[1] //*(ptr+1)=array[2] } int main(){ const int size; array[size]; sort(&array[0],size); // 傳遞陣列的初始位址及陣列大小 system("pause"); return 0; } t大的講解 有讓我更了解了 謝謝 目前還有一個問題 就是向上面的程式碼 如果是在二維陣列 sort( ? )函式內的內容一樣是傳二維陣列的開始位址給他嗎? 還有 函式內的 ptr 要如何控制二維陣列呢? 再次感謝 不厭其煩的看完我的問題! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.30.10.154

09/28 17:24,
他問的是二維陣列呢。
09/28 17:24

09/28 17:30,
二維陣列跟一維陣列還不是都一樣是連續的記憶體位置
09/28 17:30
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.138.150.144

09/28 19:13, , 1F
不懂你說的控制是什麼意思 是指改變陣列中的值嗎
09/28 19:13, 1F

09/29 19:35, , 2F
你可以參考看看本版 #17Rwhedo
09/29 19:35, 2F
文章代碼(AID): #1Am8RlHi (C_and_CPP)
文章代碼(AID): #1Am8RlHi (C_and_CPP)