[問題] 請問傳遞struct array問題

看板C_and_CPP (C/C++)作者 (wind)時間14年前 (2011/10/28 17:57), 編輯推噓1(106)
留言7則, 4人參與, 最新討論串1/1
請問關於陣列傳遞問題 如下: #define ARRAY_SIZE(x) (sizeof(x)/sizeof((x)[0])) main() { typedef struct data{ U32 cmd; U32 cmd1; U8 *pdata }Mouse; Mdata={0x4c}; Mouse array[]={0x10,0x2,Mdata},{0x3,0x1,Mdata} fun(array); printf("orginal size=%d",ARRAY_SIZE(array)); } fun(Mouse myarray[]) { printf("size=%d",ARRAY_SIZE(myarray)); } 印出來的值為 orginal size=2 size=0 請問在fun為什麼會印錯的size=0? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.147.15.66

10/28 18:00, , 1F
置底十三誡之十二 雖然不完全相關但建議一看
10/28 18:00, 1F

10/28 18:01, , 2F
另外你可以在文章前按大寫 E 修改文章
10/28 18:01, 2F

10/28 18:17, , 3F
我有試過printf("cmd=%d",myarray[1].cmd); 可印出正確
10/28 18:17, 3F

10/28 18:17, , 4F
值 但是不曉得為什麼SIZE就是錯的
10/28 18:17, 4F

10/28 18:19, , 5F
是Mouse array[]={{0x10,0x2,Mdata},{0x3,0x1,Mdata}};
10/28 18:19, 5F

10/28 18:46, , 6F
因為在 fun 裡面 ,sizeof(myarray); 得不到你想要的東西唷
10/28 18:46, 6F

10/29 02:12, , 7F
sizeof(Mouse*)
10/29 02:12, 7F
文章代碼(AID): #1EgdntpF (C_and_CPP)
文章代碼(AID): #1EgdntpF (C_and_CPP)