Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Länge eines Arrays

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 ] [ 2 ] [ 3 ] > 4 < [ 5 ]
030
27.07.2003, 14:19 Uhr
~Marian
Gast


Was bringt eigentlich genau new?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
031
27.07.2003, 14:42 Uhr
~Thomas
Gast


Hi!
Es erstellt ein Neues Objekt im Heap (in diesem Fall den Platz für char[xx])
und gibt einen Zeiger auf dieses Objekt zurück.

char * VarName = new char;

VarName ist ein Zeiger auf irgendeine Charvariable.
mit new setzt du diesen Zeiger auf eine Charvariable im Heap.

wenn du sagst
char * VarName = new char[20];

reserviert new im Heap einen Speicher für 20 char und VarName zeigt auf das 1. Element.

Sehr gut erklärt ist das ganze in C++ in 21 Tagen Kap. "Arrays und verkettete Listen". Arrays auf dem Heap.

Online findest du das Buch unter
www.informit.de/books/c++21/data/inhalt.htm" target="_blank"> www.informit.de/books/c++21/data/inhalt.htm

Außredem nützt es etwas bei dir??

Thomas
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
032
27.07.2003, 14:49 Uhr
~Thomas
Gast


Ein einfaches Beispiel:

C++:

char * Array  =new Array[5];

Array[0] = 'H';
Array[1] = 'a';
Array[2] = 'l';
Array[3] = 'l';
Array[4] = 'o';

cout << Array[4]; // gibt "o" aus.

cout << Array; // gibt "H" aus( weil auf 1. Element zeigt).
Array++;
cout << Array; // gibt "a" aus, weil jetzt auf 2. Element Zeigt.




Thomas
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
033
27.07.2003, 14:53 Uhr
0xdeadbeef
Gott
(Operator)


Du meinst

C++:
char *Array = new char[5];


Übrigens solltest du dann Array selbst nicht mehr verändern. Sowas wie

C++:
++Array;


erschwert es nachher, die ursprüngliche Adresse wiederzufinden, die du brauchst, um das Array wieder vom Heap runterzunehmen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 27.07.2003 um 14:54 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
034
27.07.2003, 14:55 Uhr
~Thomas
Gast


Natürlch wieder
delete [] Array;
am Schluss!

SORRY!!!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
035
27.07.2003, 14:58 Uhr
~Thomas
Gast


Ob man schreibt
char *Array oder char * Array ist reine Geschmackssache.

Und ob man das ++ verwendet oder nicht ist die Frage ob man es braucht oder nicht.

Thomas
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
036
27.07.2003, 15:02 Uhr
0xdeadbeef
Gott
(Operator)


Es ging nicht um die Position des Sterns, sondern um das hier:

C++:
char * Array = new [b]Array[5][/b];


Array[5] ist zu diesem Zeitpunkt kein sinnvoller bezeichner. Was das ++ betrifft, du musst dir die ursprüngliche Adresse von Array merken. Nach dem ++Array zeigt Array auf eine andere Speicheradresse und delete[] kann nichts mehr damit anfangen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
037
27.07.2003, 15:05 Uhr
~Marian
Gast



Zitat:
~Thomas schrieb:
Hi!
[...]

Sehr gut erklärt ist das ganze in C++ in 21 Tagen Kap. "Arrays und verkettete Listen". Arrays auf dem Heap.

Online findest du das Buch unter
www.informit.de/books/c++21/data/inhalt.htm" target="_blank"> www.informit.de/books/c++21/data/inhalt.htm

Außredem nützt es etwas bei dir??

Thomas


Ich hoffe das letzte war nicht auf mich, sondern auf's Problem bezogen
Ja, es nützt mir ne Menge!
Danke für den Buchtipp. Ich habe mir mal die Internetseite angeschaut und gleich zu den Favoriten gesetzt.
Danke auch für das Beispiel. Jetzt habe ich es verstanden...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
038
27.07.2003, 15:07 Uhr
~Thomas
Gast


Array[5] Stimmt nicht da habe ich mich verwurschtelt!
Aber dass ++ kann man z.B.: mit -- aufheben.
Thomas
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
039
27.07.2003, 15:12 Uhr
0xdeadbeef
Gott
(Operator)


Trotzdem macht es in aller Regel mehr Sinn, sich einen zweiten char* zu definieren und den langlaufen zu lassen. Dadurch wird die Sache deutlich übersichtlicher.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] [ 2 ] [ 3 ] > 4 < [ 5 ]     [ 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: