Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Array

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
16.02.2008, 22:32 Uhr
~blurry333
Gast


Hallo @all,

kurze Frage zu arrays.

int* x=new int[3];
x[0]=3; x[1]=9; x[2]=18;

delete []x;

cout<<x[2];

Obwohl das array ja gelöscht ist, gibt er für x[2] immer noch 18 aus .
Für x[0] u. x[1] aber nur rubbish.

P.S. : Kann man eigentlich ein einziges Element löschen
z.B. delete x[1] ;


Vielen Dank !!!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
16.02.2008, 23:07 Uhr
0xdeadbeef
Gott
(Operator)


Nach dem delete[] noch auf das Array zuzugreifen, erzeugt undefiniertes Verhalten. Dass es bei dir noch das selbe ausgibt, ist mehr oder weniger zufällig. Wenn du ein einzelnes Element löschen willst, wär's am einfachsten, anstatt eines Array std::vector zu benutzen, also etwa

C++:
#include <vector>

// ...

std::vector<int> v(3);

v[0] = 3;
v[1] = 9;
v[2] = 18;

v.erase(v.begin() + 1); // Danach: v[0] == 3, v[1] == 18


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: