[問題] 敢問鏈結串列與結構指標的曖昧情節

作者: ga6611220 (疥瘡貓)   2015-01-05 10:53:17
開發平台(Platform): C
版上各位先進好,小弟是學習C一年的新手,最近在鏈結串列那邊卡住了,敢問各位大大
在學習結構時書上教我:
結構指標兩個步驟:
STEP1.宣告結構指標
struct data
{
char name[10];
int math;
}student;
struct data *ptr;
STEP2.將指標指向結構變數student
ptr = &student;
要完成這樣的動作才可以使用「->」來連接結構裡的成員
但我在學習鏈結串列時卻好像有點不太一樣
struct node
{
int data;
struct node *next;
};
typedef struct node NODE;
接下來在main函數中
NODE *ptr1,*ptr2,*ptr3;
ptr2 = (NODE*) malloc(sizeof(NODE)); 後
接著就可以使用箭號->來連接成員了
小弟納悶的是...結構變數跑到哪去了呢
況且student那個結構,若像鏈結串列那般寫(直接建立指標,無指向結構變數阿...)
便無法執行
還請各位大大點醒開示,感激不盡
程式碼(Code):
補充說明(Supplement):
作者: a27417332 (等號卡比)   2015-01-05 11:10:00
有點難懂,但感覺你是不能理解malloc和指標的觀念?
作者: knockbusterx (knockbusterx)   2015-01-05 11:28:00
宣告student時是配置到stack上,而malloc是動態配置會傳回一個指向sizeof(NODE)的大小的指標
作者: EdisonX (卡卡獸)   2015-01-05 21:55:00
#1G33wKbT (C_and_CPP)
作者: OPIV (Monitor)   2015-01-05 23:30:00
Node node:node.xxxNode *node:1 (*node).xxx //麻煩2 node->xxx //所以有這種方式換行不見了= =Node node: node.xxxNode *node: 有兩種方式1: (*node).xxx2: node->xxx

Links booklink

Contact Us: admin [ a t ] ucptt.com