generelle frage zu pointern



  • Hi !
    Ich hab da mal ne generelle frage zu pointern...

    In folgendem beispiel benutze ich einen pointer zum übergeben an eine funktion...

    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    void pm1(char *out)
    {
      char test[64]={};
      char *ptr = &test[0];
    
      while(*out++!='W')*ptr++='A';
      printf("%s\n",test);
    
      strcpy(out,test);
    }
    
    int main(int argc, char *argv[])
    {
        char dummy;
        char array[64]={"Hallo Welt"};
    
        printf("Ausgabe 1: %s\n",array);
        pm1(array);
        printf("Ausgabe 2: %s\n",array);
    
        printf("Press Enter...\n");
        dummy=getchar();
        return 0;
    }
    

    Meine Frage ist jetzt:

    Welche möglichkeiten gibt es jetzt den pointer *out wieder auf seine startadresse zu setzen ?

    Klar, ich könnte mit out--; wieder zurück zählen....

    Was für möglichkeiten hätte ich noch ?

    Mfg McMorf



  • Du könntest dir z.B. die Adresse in einer anderen Variable speichern.



  • Danke!
    Ich glaube das werde ich so machen, wirkt irgendwie wie das sinnigste...
    Mfg McMorf



  • Das sinnigste ist, du änderst gleich in out.
    Ohne test[64] und ohne strcpy.


Anmelden zum Antworten