Dynamisches Mehrdimensionales Array an funktion übergeben



  • Ich habe folgendes Problem:

    Und zwar will ich mit der funktion

    void init_text(char **text,int *nlines)
    {
    int i;

    *nlines=30;

    text = ( char** )malloc( *nlines*sizeof( char* ) );

    for(i=0;i<nlines;i++)
    {
    text[i] = ( char
    )malloc( 1023*sizeof( char ) );
    }
    }

    ein dynamisches Array initialisieren.

    Auszug aus main

    char **text;
    int nlines=0;

    init_text(text2,&nlines);

    Im unterprogramm kann ich auf jede stelle des text arrays mit dem index zugreifen. (zb. text[0][1])

    Das Problem ist ,dass dies in der Mainfunktion nicht mehr möglich ist
    da der pointer *text[0] auf einen falschen speicher verweist
    woran kann das liegen??



  • Es gibt Codetags, siehe:

    void init_text(char ***text,int *nlines)
    {
    int i;
    
    *nlines=30;
    
    *text = malloc( *nlines*sizeof( char* ) );
    
    for(i=0;i<*nlines;i++)
    {
    (*text)[i] = malloc( 1023 );
    }
    }
    

    ein dynamisches Array initialisieren.

    Auszug aus main

    char **text;
    int nlines=0;
    
    init_text(&text,&nlines);
    


  • Wutz schrieb:

    void init_text(char ***text,int *nlines)
    

    😮 ein three star programmer 😃


Anmelden zum Antworten