Используя указатель void на массив

Я просто пытался использовать указатель 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?

5
задан Dave 11 January 2012 в 03:38
поделиться