Mit void-Zeiger auf ein array

War ich einfach nur versucht, einen void-Zeiger auf ein integer-array habe ich versucht zu sehen, wenn ich drucken Sie das array wieder durch Gießen Sie es zurück in int. Aber es ist mir einige zufällige Wert. Können Sie mir sagen, wohin ich gehe falsch gemacht?

#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;
}

Ausgabe ist diese:

133554432131072512

Warum ist es nicht pinting Elemente eines Arrays a[] ich.e 1,2,3,4 ?

Sie können das Ergebnis verbessern, indem ein Zeilenumbruch in der format-Zeichenfolge, gibt die zahlen: printf("%d\n", x);.
Yupp.Ich war nicht die Konzentration auf die Formatierung, weil ich das geschrieben habe um mir selbst zu helfen testen Sie diese Funktionalität für ein anderes Programm.

InformationsquelleAutor Anusha Pachunuri | 2012-01-11

Schreibe einen Kommentar