Nachtraegliche Initialisierung



  • Hi

    Folgendes Problem: Ich will einen Zeiger erst deklarieren und spaeter intitialisieren.

    BSP:
    char *zeiger[];

    zeiger[] = { "test", "test2" }; // geht nicht

    Wie kann ich das realisieren?



  • weil in C zu laufzeitbeginn solche dinge bekannt sein müssen, oder ich mit dynamischer Speicherallokierung arbeiten muss

    in deinem Fall z.B.

    char **zeiger;
    int  i;
    // Jetzt entscheide dich wievelie Strings zu in deinem Feldspeicher sollts z.B. NUM
    if (0==(zeiger=calloc(NUM, siezof(char *))))
     {  
       printf("Fehler in calloc");
       exit(1);
     }
    // jetzt entscheide ich wie lang jedes einzelne dieser Elemente sein sollen
    for (i=0;i<NUM;i++)
     {
    if (0==(zeiger[i]=calloc(/*Länge des einzelstrings+1*/, siezof(char *))))
     {  
       printf("Fehler in calloc");
       exit(1);
     }
    else
     strcpy(zeiger[i],"Inhalt des EinzelStrings");
    

Anmelden zum Antworten