Thomas W.: Array mit Pointers in C

Beitrag lesen

Hallo,

ich blicke durch Deinen Code nicht so ganz durch:

char cBuffer[MAX_LENGTH_LINE];
void *ptrs[count];

ptrs ist ein Feld der Laenge count und hat Zeiger vom Typ (void *) als Inhalt.

int i = 0;

while( fgets(cBuffer, MAX_LENGTH_LINE, pFile) != NULL ) {
        ptrs[i] = (double *)malloc((strlen(cBuffer) + 1) * sizeof(char));

Hier castest Du den Inhalt von ptrs[i] auf (double *), das ist also ein Zeiger auf eine double.

printf("ref: %i \n", ptrs[i]);

Hier gibst Du den pointer aus, was als Integer i.O. ist.

printf("val: %i \n", &ptrs[i]);  //Funktioniert nicht

Aber wieso willst Du hier eine Integer ausgeben, wenn Du doch oben gesagt hast, dass prts[i] auf eine double zeigt? Und warum willst Du die Adresse des Pointers ptrs[i]? Den Wert, auf den Du mit prts[i] zeigst, kriegst Du mit einem "*" davor.

Gruss
Thomas