以下のプログラムでは、配列の長さはar
メインでは正しいですが、私のコンピューターでは 2 (の単位)temp
であるポインターの長さを示しています。ar
sizeof(int)
#include <stdio.h>
void temp(int ar[]) // this could also be declared as `int *ar`
{
printf("%d\n", (int) sizeof(ar)/sizeof(int));
}
int main(void)
{
int ar[]={1,2,3};
printf("%d\n", (int) sizeof(ar)/sizeof(int));
temp(ar);
return 0;
}
配列の長さが関数で正しく読み取られるように、関数を定義する方法を知りたかったのです。