Ergebnis 1 bis 6 von 6
  1. #1
    Boskoop
    Themenstarter

    Registriert
    07.2008
    Beiträge
    39

    Ausgabe: C++ Code unter OS X anders als unter Win und Linux

    Hi Leute,

    wieso wird unter OS X bei int* q eine 0 Ausgegeben und unter Win und Linux die Speicheradresse? Wird in OS X nicht der Gnu C++ Compiler verwendet? oder ist das hier wieder so ein modifizierter/angepasster von Apple?

    Code:
    #include <iostream>
    
    usingnamespacestd;
    
    
    int main (int argc, const char * argv[])
    {
        int* p = 0;
        int* q;
        cout << p << " " << q << endl;
        if (q != 0) {
            q = new int;
            *q = 10;
        }else{
            q = new int;
            *q = 20;
        }
        cout << p << " " << q << " " << *q << endl;
        return 0;
    }
    Ausgabe:
    Code:
    0 0
    0 0x100100a30 20

  2. #2
    Danziger Kant Avatar von karolherbst
    Registriert
    05.2007
    Ort
    Irgendwo
    Alter
    21
    Beiträge
    3.877
    Mac OS X initliasiert grundsätzlich die meisten Pointer mit NULL. Und 0x0 wird als 0 ausgegeben

    Und ja, Apple verwendet einen eigenen GCC (4.2.1-apple). Sonst einen llvm-gcc oder clang. Da du aber wahrscheinlich das über commandline machst, und gcc eingibst, wird es der llvm-gcc sein.

    PS: Warum sollte man auf die Idee kommen primitive Datentypen per dynamische Speicherallokation anzulegen? Arbeite lieber mit Stackvariablen in C++ und nur verwende dynamische Allokationen eher für globale Daten. Das hält auch deinen Code sauber (sehr wenige * bzw. & Ausdrücke) und ist weniger Fehleranfällig. Wenn ich bedenke, dass mit einem int* i Operationen mittels &i, *i wie auch i möglich sind, wird mir schon fast schlecht.
    http://www.zeit.de/2011/43/Peinlichk...omplettansicht

    MacBook Pro 15" Early 2011, Gentoo - unstable

  3. #3
    Boskoop
    Themenstarter

    Registriert
    07.2008
    Beiträge
    39
    Danke,

    der Code war nur zur Verdeutlichung meines Problems.

  4. #4
    Danziger Kant Avatar von karolherbst
    Registriert
    05.2007
    Ort
    Irgendwo
    Alter
    21
    Beiträge
    3.877
    ahh okay, ich habe zu oft gesehen, dass C++ als C + Objekte gesehen wird und fast vollkommen auf templates verzichtet wird und der gewohnte C Stil beibehalten wird. Das PS war sozusagen rein zur Vorbeugung.
    http://www.zeit.de/2011/43/Peinlichk...omplettansicht

    MacBook Pro 15" Early 2011, Gentoo - unstable

  5. #5
    London Pepping Avatar von Loooki
    Registriert
    09.2009
    Ort
    Koblenz
    Beiträge
    2.055
    Zitat Zitat von karolherbst Beitrag anzeigen
    ahh okay, ich habe zu oft gesehen, dass C++ als C + Objekte gesehen wird und fast vollkommen auf templates verzichtet wird und der gewohnte C Stil beibehalten wird. Das PS war sozusagen rein zur Vorbeugung.
    OT: Boah ein Schlag ins Gesicht für alle C++ Programmierer
    ich bin in keinem sozialen Netzwerk
    Tut mir leid
    (für eure Dummheit!)
    last.fm

  6. #6
    Danziger Kant Avatar von karolherbst
    Registriert
    05.2007
    Ort
    Irgendwo
    Alter
    21
    Beiträge
    3.877
    OT: tja, was kann ich denn dafür
    http://www.zeit.de/2011/43/Peinlichk...omplettansicht

    MacBook Pro 15" Early 2011, Gentoo - unstable

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •