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.
Ergebnis 1 bis 6 von 6
- 05.12.2011, 14:14 #1Boskoop
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?
Ausgabe: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; }
Code:0 0 0 0x100100a30 20
- 05.12.2011, 15:15 #2
- 06.12.2011, 13:18 #3Boskoop
Themenstarter
- Registriert
- 07.2008
- Beiträge
- 39
Danke,
der Code war nur zur Verdeutlichung meines Problems.
- 06.12.2011, 14:09 #4
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.
- 11.12.2011, 00:00 #5
- 11.12.2011, 00:33 #6
OT: tja, was kann ich denn dafür


Zitieren


(für eure Dummheit!) 