new scheint reserviert Speicher nicht richtig

DaFunk2k

Mitglied
new reserviert scheinbar Speicher nicht richtig

Hallo zusammen,

habe folgenden zwei Codezeilen:

char *temp;
temp = new char(200);
char *buf;
buf = new char(50);

Jetzt müsste es doch so sein, dass dem Zeiger temp ein 200 char langer Bereich reserviert wird, oder?

Das komische ist nur, dass meine Entwicklungsumgebung zur Laufzeit sagt, dass der Zeiger temp die Adresse 0x00060008 und der Zeiger buf die Adresse 0x00060018. Also eine Differenz von 10 (16). In dem Bereich passen aber niemals 200 chars rein.

Vielen Dank schonmal
Andreas



PS: sorry für die schlechte Grammatik im Titel...da sind wieder zwei Formulierungen durcheinander geraten
 
Zuletzt bearbeitet:
Hi.
DaFunk2k hat gesagt.:
Hallo zusammen,

habe folgenden zwei Codezeilen:



Jetzt müsste es doch so sein, dass dem Zeiger temp ein 200 char langer Bereich reserviert wird, oder?
Nein. Du hast ein einzelnes Zeichen angelegt mit dem Wert 200. Die runden Klammern dienen zur Initialisierung / Konstruktion. Probier's mal so:
C++:
char * cp = new char[200];
Nicht vergessen wieder mit
C++:
delete[] cp;
freizugeben.

Gruß

PS: Verwende doch für Code die Code Tags (z.B. [ code=cpp ]...[ /code ]) und nicht die Tags zum Zitieren.
 
oh...*nochmal schnell in meinem Buch blätter*
oops...das ist aber jetzt ein peinlicher Anfängerfehler...vielen Dank
 
Zurück