Arrays & Pointer



  • Wie kann ich denn einem Array (z.B. char a[1000])den Inhalt zuweisen, auf den ein Pointer (z.B. char *b) zeigt. Der Inhalt dieses Arrays ist vorher nicht leer. D.h. der Inhalt müsste erst geleert werden und dann muss der Inhalt auf den der Pointer zeigt in das Array eingefügt werden. Aber wie???



  • Wenn es um Zeichenketten geht, nimm doch strcpy. Ansonsten kannst Du auch Funktionen wie memcpy, memmove, memset nehmen.
    Wenn Du es "von Hand" machen willst, weist Du innerhalb einer Schleife den Arrayelementen einzeln Werte zu.



  • char a[1000];

    for (int i=0; i<1000; i++) char a[i]=0; // array löschen...
    for (int i=0; i<laengestringb; i++) a[i] = b[i]; // neuen string zuweisen!



  • aLpHa oNe schrieb:

    char a[1000];

    for (int i=0; i<1000; i++) char a[i]=0; // array löschen...
    for (int i=0; i<laengestringb; i++) a[i] = b[i]; // neuen string zuweisen!

    einfacher:

    memset(a, 0, 1000);
    strcpy(a, b);
    

    Wobei man sich das Initialisieren mit 0 sparen kann.


Anmelden zum Antworten