作者liptonbin (wind)
看板C_and_CPP
標題[問題] 請問傳遞struct array問題
時間Fri Oct 28 17:57:08 2011
請問關於陣列傳遞問題
如下:
#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