整数配列の要素数を取得するマクロを使用し、main 関数で整数配列の数の正しい結果を取得できましたが、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 を使用しています。