[問題] 關於結構體指標變數在函式之間的傳遞

看板C_and_CPP (C/C++)作者 (There is no Finish line)時間13年前 (2012/12/27 20:36), 編輯推噓2(207)
留言9則, 3人參與, 最新討論串1/1
開發工具:Dev-C++ 4.9.9.2 問題描述: 小弟想寫一個使用結構體動態輸入員工資料的小程式(使用C語言),代碼如下 #include<stdio.h> struct employee { int EID; char Name[10]; int Salary; int hour; }; int j; void textData(struct employee*, int j); int main(void) { int count; printf("請問要輸入幾筆員工資料?"); scanf("%d",&count); struct employee MemberData[count]; textData(&MemberData,count); system("pause"); return 0; } void textData(struct employee *data, int Amount) { for( j=0;j<Amount;j++) { printf("請依序輸入第%d的員工資料",j+1); scanf("%d %s %d %d",&data[j]->EID,data[j]->Name,&data[j]->Salary, &data[j]->hour); } } 編譯錯誤,但看完錯誤訊息,又不知道如何更正錯誤。所以想請板上各位大大 給點意見,感謝 -- Dream big and Start small -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.221.12

12/27 20:43, , 1F
data[j]->EID...etc, 改成data[j].EID
12/27 20:43, 1F

12/27 20:43, , 2F
因為您的data已經是記憶體位置, 所以不必(->)了~
12/27 20:43, 2F

12/27 20:43, , 3F
錯誤訊息說到"invalid type argument of '->'"
12/27 20:43, 3F

12/27 20:46, , 4F
抱歉,說得更正確一點...您的data[j]已經是記憶體位置
12/27 20:46, 4F

12/27 20:49, , 5F
請問一下 那我印出來的時候是寫成MemberData[j].EID嗎
12/27 20:49, 5F

12/27 21:06, , 6F
嗯阿, 一樣.
12/27 21:06, 6F

12/27 22:16, , 7F
執行時期知道大小-> malloc() 你用到 VLA 了
12/27 22:16, 7F

12/27 22:20, , 8F
錯誤訊息是什麼? 直接打在標題上才會比較有人進來看
12/27 22:20, 8F

12/27 22:21, , 9F
還要自己貼上編譯的按完 end 就出去了
12/27 22:21, 9F
文章代碼(AID): #1Gt43XZG (C_and_CPP)
文章代碼(AID): #1Gt43XZG (C_and_CPP)