double oder double*



  • Moin geehrte Leidensgenossen!

    Wann sollte man den eigentlichen Datentyp benutzen und wann einen Zeiger auf einen Datentyp.

    Wie z.B. bei double und double* oder vielen anderen Beispielen.

    Gibt es Performanceunterschiede oder andere Vorteile bei der Benutzung der einen oder der anderen Variante?



  • Kommt drauf an was du machen willst...





  • ich habe mich das gefragt weil ich im Forum mal ne Frage gestellt habe und manche Kollegen in Ihren Antworten die Zeigeroperation mit * verwendet haben.

    nun bin ich unschlüssig was besser ist? und was man unbedingt beachten sollte?



  • free_style schrieb:

    nun bin ich unschlüssig was besser ist?

    Das kommt immernoch drauf an was du machen willst. Nicht überall sind zeiger von Vorteil, an anderen Stellen kommst du ohne sie nicht aus.
    Wie gesagt, so pauschal kann man darauf keine gute Antwort geben.

    free_style schrieb:

    und was man unbedingt beachten sollte?

    Bei Zeigern sollte man zuallererst Speicherlecks und doppelte deletes vermeiden sowie Zugriffe über Zeiger, die nicht auf ein entsprechendes Objekt verweisen.



  • ich habe ein Programm in dem in der Klassendefinition struct Objekte mit double Parametern gearbeitet wird.

    ungefähr so:

    struct t{
      double i;
       ...
    
      //setter
      //getter
      //Konstruktor u.v.m.
    };
    

    nun weiss ich nicht ob ich die Parameter besser als Zeiger oder Datentypen verwalten soll?



  • in dem Fall ganz sicher als Datentypen - es sei denn du willst Assoziationen statt Aggregationen ausdrücken. Da du aber ein struct mit public membern benutzt siehts mir eher nach einem einfachen POD aus, also pack die Daten direkt rein.



  • free_style schrieb:

    nun weiss ich nicht ob ich die Parameter besser als Zeiger oder Datentypen verwalten soll?

    Das kommt dadrauf an, ob du Werte oder Adressen speichern willst. Konkretisier mal bitte.



  • Zeiger und Datentypen sind zwei unterschiedliche Paar Socken, auch wenn Zeiger auf diese Datentypen zeigen. Wenn Du Zeiger aud double anstatt doubles benutzt, kann Du keine doubles reinpacken, sondern eben nur Zeiger auf doubles.
    Lese mal in einem guten Tuorial nach, was Zeiger sind.



  • das hab ich mir auch schon überlegt - eigentlich brauche ich die Zahlen... also besser double verwenden anstatt Zeiger auf ein double...

    ich denke ich halte es so...

    Danke für euere Hilfe!!



  • Zeiger auf double bräuchtest du in diesem Falle, wenn du entweder bereits irgendwo einen double -Wert gespeichert hast und diesen referenzieren willst oder wenn du den Speicher dynamisch verwaltest (mit new und delete ). Für normale Werte, die gespeichert werden müssen, sind Stackvariablen viel einfacher zu handhaben.


Anmelden zum Antworten