線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1317
推到 Plurk!
推到 Facebook!

請問怎麼傳遞二維陣列指標, 動態產生二維陣列指標

答題得分者是:allenchan
chungyih1
一般會員


發表:2
回覆:4
積分:1
註冊:2004-10-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-08 10:56:46 IP:140.127.xxx.xxx 未訂閱
您好, 請問一下, 可以動態產生二維陣列嗎?? 如果我要達到以下的目的: 1.在主程式定義一個二維陣列的指標, 只定義指標, 將指標傳給副程式 A 2.利用副程式A來動態產生空間, 並填入值 比如我寫成 void A(int **); void main() { int **HT; A(HT); cout << HT[0][0] << endl; } void A(int **p) { p = new int*[2]; p[0] = new int[3]; p[1] = new int[3]; p[0][0] = 3; ... } 請問可以這樣用嗎?? 謝謝...
allenchan
資深會員


發表:10
回覆:306
積分:283
註冊:2004-01-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-08 11:09:25 IP:203.70.xxx.xxx 未訂閱
你要改成這樣,傳指標的位址進去:
void A(int ***p)
{
    *p = new int*[2];
    (*p)[0] = new int[3];
    (*p)[1] = new int[3];
    (*p)[0][0] = 3;
}    void main()
{
    int **HT;
    A(&HT);
    cout << HT[0][0] << endl;
}    
chungyih1
一般會員


發表:2
回覆:4
積分:1
註冊:2004-10-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-08 11:37:57 IP:140.127.xxx.xxx 未訂閱
(*p)[0] = new int[3]; 那再請問一下... 為什麼要改成 (*p), 如果寫成 *p, 有什麼不一樣嗎??
allenchan
資深會員


發表:10
回覆:306
積分:283
註冊:2004-01-06

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-12-08 11:46:59 IP:203.70.xxx.xxx 未訂閱
運算子優先權的問題: (*p)[0] 這樣是指到 p 這個位址下的 [0] *p[0] 這樣是指到 p[0] 這個位址
chungyih1
一般會員


發表:2
回覆:4
積分:1
註冊:2004-10-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-12-08 12:06:22 IP:140.127.xxx.xxx 未訂閱
3Q... 大概了解囉... 
系統時間:2024-04-29 14:36:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!