Pointer Swap Anfängerfrage



  • Deka schrieb:

    Heißt das wenn ich zB: mit Array von Strings "Daten" einrichte in Form :
    ["ba","a","c"]
    und diese dan lexikographisch Ordnen will:
    ["a","ba","c"]
    Das ich nicht einfach den Pointer von Daten[0] mit dem von Daten[1] spawen kann sondern muss ein in neues passendes Array erzeugen und diese dann Füllen ?
    Gehts echt nicht geschickter ?

    MFG Deka

    Doch, z.B. mit std::vector und std::sort...



  • Deka schrieb:

    Heißt das wenn ich zB: mit Array von Strings "Daten" einrichte in Form :[...]Das ich nicht einfach den Pointer von Daten[0] mit dem von Daten[1] spawen kann sondern muss ein in neues passendes Array erzeugen und diese dann Füllen ?

    Nein, das heißt es nicht.



  • Deka schrieb:

    Heißt das wenn ich zB: mit Array von Strings "Daten" einrichte in Form :
    ["ba","a","c"]
    und diese dan lexikographisch Ordnen will:
    ["a","ba","c"]
    Das ich nicht einfach den Pointer von Daten[0] mit dem von Daten[1] spawen kann sondern muss ein in neues passendes Array erzeugen und diese dann Füllen ?
    Gehts echt nicht geschickter ?

    MFG Deka

    liest denn keiner, was ich schreibe? Inhalt des Arrays mit dem Inhalt eines anderen Arrays zu swappen ist natürlich möglich. Worauf die arrays "zeigen" [1]
    kann man nicht ändern. Bitte lesen.

    [1] arrays sind keine Zeiger, aber man kann sie implizit als Zeiger benutzen



  • Deka schrieb:

    Heißt das wenn ich zB: mit Array von Strings "Daten" einrichte in Form :
    ["ba","a","c"]
    und diese dan lexikographisch Ordnen will:
    ["a","ba","c"]
    Das ich nicht einfach den Pointer von Daten[0] mit dem von Daten[1] spawen kann sondern muss ein in neues passendes Array erzeugen und diese dann Füllen ?
    Gehts echt nicht geschickter ?

    MFG Deka

    Wenn du das so schreibst:

    char *A[] = { "a","ba","c"};
    

    Dann hast es du wieder mit Zeigern zu tun, die kannst du swappen.



  • Wenn du das so schreibst:

    char *A[] = { "a","ba","c"};
    

    Wobei der Praxisbezug stark gegen 0 gehen dürfte.
    🙂



  • praktisch 0 schrieb:

    Wenn du das so schreibst:

    char *A[] = { "a","ba","c"};
    

    Wobei der Praxisbezug stark gegen 0 gehen dürfte.
    🙂

    wieso? Und wenn ich diese Liste sortieren will? Sortieren ist sehr praxisbezogen.



  • supertux schrieb:

    wieso? Und wenn ich diese Liste sortieren will? Sortieren ist sehr praxisbezogen.

    Diese Liste kann ich ja gleich sortiert definieren. Sortieren wird man praktisch eher dynamisch erzeugte Strings (malloc), die von irgendwo eingelesen werden. 🙂



  • praktisch 0 schrieb:

    Diese Liste kann ich ja gleich sortiert definieren. Sortieren wird man praktisch eher dynamisch erzeugte Strings (malloc), die von irgendwo eingelesen werden. 🙂

    Jo, aber praktisch ist das Latte. Der Swapvorgang bleibt der selbe.



  • praktisch 0 schrieb:

    Diese Liste kann ich ja gleich sortiert definieren. Sortieren wird man praktisch eher dynamisch erzeugte Strings (malloc), die von irgendwo eingelesen werden. 🙂

    nicht unbedingt. Was ist wenn man die sortierte Liste später braucht, also später als die unsortierte? Sortieren ist nicht die einzige Listeoperation, die es gibt.

    praktisch 0 schrieb:

    Sortieren wird man praktisch eher dynamisch erzeugte Strings (malloc), die von irgendwo eingelesen werden. 🙂

    sagt wer?


Log in to reply