Marcel: Array mit Pointers in C

Hallo

Ich möchte eine Datei mit C zeilenweise einlesen und für jede Zeile genau entsprechend Memory allozieren. Ich habe folgendes:

  
  
.  
..  
  
char cBuffer[MAX_LENGTH_LINE];  
void *ptrs[count];  
int i = 0;  
  
    while( fgets(cBuffer, MAX_LENGTH_LINE, pFile) != NULL ) {  
        ptrs[i] = (double *)malloc((strlen(cBuffer) + 1) * sizeof(char));  
           printf("ref: %i \n", ptrs[i]);  
           printf("val: %i \n", &ptrs[i]);  //Funktioniert nicht  
           i++;  
    }  
  
..  
.  

Die entsprechenden Pointer habe ich im Pointer Array gespeichert. Wie erhalte ich nun wieder den eingelesenen Text aufgrund des Wertes im Pointer-Array?

Gruss Marcel

  1. 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