我使用宏来获取整数数组的元素个数,我可以在主函数中得到整数数组个数的正确结果,但是如果我使用 getData 函数并发送整数数组的指针作为参数。我想知道为什么我得到这个错误的答案。谢谢!
我的程序代码如下:
#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;
}
我的程序的结果是:
9
1、5
我使用 gcc 作为我的编译器。