zweidimentionales Array mit unbekannter Größe???



  • Hi! 😕
    Ich muß ein Array [][5] ausfüllen und da ich die Anzahl der Strings womit das Array ausgefüllt wird nicht weiß, brauche ich ein Array[][5] mit unbekanter Größe. ⚠
    Weiß jemand vielleicht wie ich es machen kann.
    ich bedanke mich im voraus 😉



  • Du könntest mit realloc bei Bedarf dein 2-dimensinales array dynamisch anpassen.



  • #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char* argv[])
    {
    
    char *ptr;
    int i=2;
    
    ptr=malloc(1);
    
    if (ptr==NULL) return 1;
    
    while (1) {
    
    	printf("Wert: ");
    	scanf("%c", ptr);
    	while(getchar()!='\n');
    	printf("\n");
    
    	ptr=realloc(ptr,i++);
    }
    
    return 0;
    }
    

    so siehts eindimensional aus!



  • free() nicht vergessen



  • semmelrogge schrieb:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char* argv[])
    {
    
    char *ptr;
    int i=2;
    
    ptr=malloc(1);
    
    if (ptr==NULL) return 1;
    
    while (1) {
    
    	printf("Wert: ");
    	scanf("%c", ptr);
    	while(getchar()!='\n');
    	printf("\n");
    
    	ptr=realloc(ptr,i++);
    }
    
    return 0;
    }
    

    so siehts eindimensional aus!

    deine Benutzung von realloc ist furchtbar. Bitt sowas nie machen, sondern so

    char* tmp, *ptr;
    ...
    tmp = realloc(ptr, ++i);
    
    if(!tmp)
    {
        /* reagiere auf den Fehler */
        free(ptr); /* wenn Funktion verlassen werden muss */
    }
    
    if(ptr != tmp)
        ptr = tmp;
    ....
    
    /* ganz am Ende *7
    free(ptr);
    

Anmelden zum Antworten