struct問題~ |
尚未結案
|
syao
初階會員 發表:66 回覆:63 積分:25 註冊:2005-02-02 發送簡訊給我 |
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 發送簡訊給我 |
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 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |