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

struct問題~

尚未結案
syao
初階會員


發表:66
回覆:63
積分:25
註冊:2005-02-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-21 19:38:42 IP:59.104.xxx.xxx 未訂閱
    struct GradeInfo{
    char *pID[10]; //而這不需要malloc配置
    char *pName[10]; //而這不需要malloc配置
    int  Score[4];
    float  Gratio[4];
    float  FinalGrade;   
}*ginfo[MAX]; //為什麼需要用到malloc配置記憶體    
char *pID[10];這樣算是有效記憶體位址嗎?? struct GradeInfo *ginfo[MAX]; //這樣不算是有配置有效記憶體嗎?? 還有我所謂的有效記憶體位址是指說並非是空指標~~ 還有請問通常什麼情況需要強制用到malloc()來配置記憶體 謝謝
liangnet
中階會員


發表:19
回覆:148
積分:83
註冊:2004-01-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-21 22:28:44 IP:218.174.xxx.xxx 未訂閱
char *pID[10] <== 配置10個指標陣列 char *pName[10] <==配置10個指標陣列    *ginfo[MAX] <==一樣道理,只會配置指標陣列。    如果指標沒有指定到有效的記憶體空間,是不能使用的。 因此必須將指標指定到有效空間,方法有… 1.用malloc配置 2.用new配置 3.
struct GradeInfo GradeInfo[MAX];
for (int i = 0; i < MAX; i  )
  ginfo[i] = &GradeInfo[i];
在結構中的pID[],因為也是指標陣列,因此要使用時,也必須配置有效記憶體。 struct GradeInfo *ginfo[MAX]; //這樣只是配置了MAX個指標陣列。 如果要存取資料,還是需要配置有效的記憶體空間給它。 發表人 - liangnet 於 2005/07/21 22:29:51 發表人 - liangnet 於 2005/07/21 22:35:42
系統時間:2024-05-18 6:35:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!