用指標直接向結構體寫入資料

2021-10-14 09:00:14 字數 2090 閱讀 2708

**我的思緒:

1.既然到設定數量就結束了,那麼有可能訪問到了非法記憶體。

2.為什麼可以設定飲料名稱,卻無法設定飲料的數量。

我設定飲料名稱用的是指標,但是在設定數量無法用,那有可能是指標指向的位址不對。

**main.c(主檔案)

#include

#include

//清屏函式

#include

//等待5秒,sleep()以毫秒為單位

#include

"rui.h"

struct drinks//飲料(drinks)

;void

rui_01

(struct drinks ling01[5]

)//列印飲料

return;}

intmain

(int argc,

char

*ar**)

,,,,

};p=ling;

rui_03

(p,ling)

;//管理員系統

while(1

)return0;

}

gly.c(管理員設定函式)

#include

#include

//清屏函式

#include

//等待5秒,sleep()以毫秒為單位

#include

"rui.h"

struct drinks//飲料(drinks)

;void

rui_03

(struct drinks *p,

struct drinks ling01[5]

)printf

("正在設定飲料**\n");

for(g=

0;g<

5;g++

)printf

("正在設定飲料數量\n");

for(k=

0;k<

5;k++)}

while

(hup==

'y'|| hup==

'y');}

}rui_01

(ling)

;printf

("已經全部設定完畢,確定請按y,重新設定請按n。\n");

scanf

("%c"

,&ok)

;fflush

(stdin);

}while

(ok==

'n')

;system

("cls");

//清屏函式

return

;}

yh.c(使用者函式)

#include

#include

//清屏函式

#include

//等待5秒,sleep()以毫秒為單位

struct drinks//飲料(drinks)

;void

rui_02

(struct drinks *p)

//飲料購買系統

else

else

}else}}

}else}}

}else

}while

(lol>

6|| lol<0)

;sleep

(5000);

//等待5秒,sleep()以毫秒為單位

system

("cls");

//清屏函式

return

;}

rui.h(標頭檔案)

extern

void

rui_01

(struct drinks ling01[5]

);extern

void

rui_02

(struct drinks *p)

;extern

void

rui_03

(struct drinks *p,

struct drinks ling[5]

);

資料結構 結構體和結構體指標

結構體 struct node s1,s2 變數s1,s2 typedef struct node ss 型別名ss結構體指標 typedef struct node pointer 等價於typedef struct node pointer 等價於 struc t node typedef st...

用結構體變數和結構體變數的指標做引數函式

例題 有n個結構體變數,內含學生學號 姓名和3門課程的成績。要求輸出平均成績最高的學生的資訊 包括學號 姓名 3門課程成績和平均成績 實現 include define n 3 學生數為3 struct student 建立結構體型別 struct student stu n p stu 定義結構體...

定義結構體型別時用結構體自身型別或指標定義內部成員

定義自身型別的成員是不可以的 定義結構體時,是不可以定義自身型別的成員的。這是因為結構體中各個成員所需的儲存空間大小是編譯階段確定的,當用該結構體定義自身成員時,由於結構體大小還不確定,因此此時定義的陳冠所需要的儲存空間大小也就不確定,因此編譯會報錯 定義自身型別的指標成員是可以的 但是可以定義該結...