看板 C_and_CPP 關於我們 聯絡資訊
請問關於陣列傳遞問題 如下: #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
LPH66:置底十三誡之十二 雖然不完全相關但建議一看 10/28 18:00
LPH66:另外你可以在文章前按大寫 E 修改文章 10/28 18:01
liptonbin:我有試過printf("cmd=%d",myarray[1].cmd); 可印出正確 10/28 18:17
liptonbin:值 但是不曉得為什麼SIZE就是錯的 10/28 18:17
liptonbin:是Mouse array[]={{0x10,0x2,Mdata},{0x3,0x1,Mdata}}; 10/28 18:19
cutecpu:因為在 fun 裡面 ,sizeof(myarray); 得不到你想要的東西唷 10/28 18:46
kiedveian:sizeof(Mouse*) 10/29 02:12