void f(int *a, int n)
{
int i;
for (i = 0; i < n; i++)
{
printf("%d\n", *(a+i));
}
}
上記のコードは、次のようmain()
に呼び出した場合に正常に機能しました。
int a[] = {1,2,3};
int *p = a;
f(a, 3);
しかし、の場合main()
、私はしました:
int *a =(int*) {1,2,3};
f(a, 3);
その後、プログラムがクラッシュします。これは奇妙に見えるかもしれませんが、私は勉強していて違いを知りたいと思っています。