整数配列へのvoidポインターを使用しようとしていましたが、配列をintにキャストして戻すことができるかどうかを確認しようとしました。しかし、それは私にランダムな値を与えています。どこが間違っているのか教えてもらえますか?
#include<stdio.h>
#include<stdlib.h>
int main(){
int a[5];
int x;
int j;
a[0]=1;
a[1]=2;
a[2]=3;
a[3]=4;
void *arr=a;
for(j=0;j<4;j++){
x = *(int *)(arr+j);
printf("%d",x);
}
return 0;
}
出力は次のとおりです。
133554432131072512
配列 a[] 、つまり 1,2,3,4 の要素をピン留めしないのはなぜですか?