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

malloc error?

尚未結案
forth
一般會員


發表:13
回覆:34
積分:9
註冊:2002-10-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-21 14:13:11 IP:140.115.xxx.xxx 未訂閱
typedef struct { int a; } A; typedef struct { int b } B; typedef struct { A ca; B cb[256]; } C; C **tt; *tt = (C *)malloc(sizeof(C)); <-- 這一行執行時會錯 程式在compiler 時正常,但執行值會出現 Access Violation 請問要如何修改 謝 寫程式是建設,除錯是破壞. 寫程式是樂趣,除錯是苦難. 哈! 哈! ....
forth
一般會員


發表:13
回覆:34
積分:9
註冊:2002-10-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-21 14:30:07 IP:140.115.xxx.xxx 未訂閱
如果放在 main() 會對 main() { C **tt; *tt = (C *)malloc(sizeof(C)); // ok } 但是放其他Function 會錯 如: main() { C **t other(t); } other(C **tt) { *tt = (C *)malloc(sizeof(C)); //<-- 這一行執行時會錯 } 寫程式是建設,除錯是破壞. 寫程式是樂趣,除錯是苦難. 哈! 哈! ....
GeorgeKu
中階會員


發表:1
回覆:120
積分:74
註冊:2004-10-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-21 14:36:19 IP:61.228.xxx.xxx 未訂閱
你要的是這樣嗎?
    C *tt;
    tt = (C *)malloc(sizeof(C));
還是要動態2維陣列的方式?
forth
一般會員


發表:13
回覆:34
積分:9
註冊:2002-10-30

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-21 16:53:01 IP:140.115.xxx.xxx 未訂閱
引言: 你要的是這樣嗎?
    C *tt;
    tt = (C *)malloc(sizeof(C));
還是要動態2維陣列的方式?
如你所說的,這樣程式就沒有問題。 但如果要改成動態2維陣列的方式要如何修改(我前面所提的一直改不出來)! 寫程式是建設,除錯是破壞. 寫程式是樂趣,除錯是苦難. 哈! 哈! ....
GeorgeKu
中階會員


發表:1
回覆:120
積分:74
註冊:2004-10-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-06-22 11:08:48 IP:61.228.xxx.xxx 未訂閱
假設你要的是5*10的二維動態陣列
    C **tt;
    tt=(C**)malloc(5*sizeof(C*));
    for(int i=0;i<5;i  )
    tt[i]=(C*)malloc(10*sizeof(C));
系統時間:2024-06-27 2:47:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!