我使用宏來獲取整數數組元素的個數,並且我可以在主函數中得到整數數組的正確結果,但是我得到了如果我使用getData函數並將整數數組的指針作爲參數發送,則返回錯誤答案。我想知道爲什麼我得到了這個錯誤的答案。謝謝!測量int數組的元組數
我的程序的代碼如下:
#include <stdio.h>
#define LENGTHOFINTARRAY(intArray) ((int)(sizeof(intArray)/sizeof(int)))
int main (int argc, char *argv[])
{
int a[] = {5,8,9,4,11,7,15,25,1};
int getData(int *data);
printf("%d\n", LENGTHOFINTARRAY(a));
getData(a);
return 0;
}
int getData(int *data)
{
int i = 0;
for(i; i < LENGTHOFINTARRAY(data); i++)
{
printf("%d, %d\n", LENGTHOFINTARRAY(data), data[i]);
}
return 1;
}
和我的程序的結果是:
1,5
我使用gcc作爲我的編譯器。
許多重複的。 – hmjd 2013-04-23 10:28:55
無論如何,答案是在c-faq中 - 在這裏你去:http://c-faq.com/aryptr/aryptr2.html – 2013-04-23 10:36:19