整数配列へのvoidポインタを使用しようとしていましたが、配列をintにキャストし直して印刷できるかどうかを確認しようとしました。しかし、それは私にいくつかランダムな価値を与えている。私はどこに間違っているのか教えていただけますか?配列へのvoidポインタの使用
#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
は、なぜそれが[]すなわち1,2,3,4、配列の要素をpintingされていませんか?
数値を出力する書式文字列に改行を入れることで出力を改善できます: 'printf("%d \ n "、x);'。 –
Yupp.私はこの機能を別のプログラムでテストするのに役立つように書いているので、書式設定に集中していませんでした。 –