calloc - array



  • hallo
    kann ich mit calloc auch ein array
    dynamisch anlegen oder nur variablen
    zb

    char pfeld=NULL;
    
    pfeld=(char *)calloc(15,sizeof(char[255]);
    
    //wie greif ich auf alle elemente zu:
    
    strcpy(pfeld[0],"Hallo du");
    printf("Ausgabe: %c",pfeld[0][1]);  // Ausgabe: a
    

    würde das so funktionieren



  • es funktioniert nicht weil calloc auch nur einen großen speicherbereich zurückgibt.
    zugegeben, calloc initialisiert den speicher aber das hilft hier nicht.

    wenn du dynamisch 2D arrays machen willst, musst du die selber aufbauen.

    sry, ich muss nochmal editieren:
    erstmal bräuchtest du keinen "char pfeld" sondern einen "char **pfeld" für 2d arrays.

    dann müsstest du pfeld = (char**) calloc(15, sizeof(char*)); machen für die zeilen

    dann for(i = 0; i < 15; ++i) pfeld[i] = calloc(1234, sizeof(char)); für die strings

    hinterher nicht vergessen, alles mit free() wieder aufzurollen


Anmelden zum Antworten