重複の可能性:
gccコンパイルエラー:キャストは配列タイプを指定します
(int *)と(int [])の違いを確認したい。次のコードをコンパイルすると、1行目は問題なく動作します。しかし、2行目では、私のコンパイラは次のエラーを出します。
test.c:10: error: cast specifies array type
誰かがこのエラーの意味と私がどこで誤りを犯したのか教えてもらえますか?
#include<stdio.h>
void abc(int *a)
{
int i;
for(i=0;i<2;i++)
{
printf("%d",((int * )a)[i]); //(1)
printf("%d",((int [])a)[i]); //(2)
}
}
int main()
{
int b[2]={0,1};
abc(b);
return 0;
}