Zeiger...
-
Du sollest dich mal instensiv mit Feldern, Zeigern, und dem Operator new beschäftigen.
eine kurze Einweisung.int x[1]; ist ein definition von einem Integerfeld mit 10 elementen.
Per definition ist x der Zeiger auf den ersten Integer ,(x+1) ist der Zeiger aus das zweite Element usw. x[0] ist der erste Integerwert x[1] der zweite usw.
wenn nun die größe des feldes erst zur laufzeit bekannt ist, dann kann mann das feld nicht vorher definieren. Dazu gibt es den operator new welcher den speicher reserviert und immer! einen Zeiger aus das erste Element zurückgibt.das denke ich ist dein Problem an der funktion.
ich hoff es war verständlich, wenn nicht, gibt es sehr gute Bücher darüber.
-
du meinst int x[10] und nicht int x[1]
ein gutes buch ist z.b. gratis zum download frei:
Bruce Eckel's Thinking in C++ Volume 1 und
Volume 2
ist aber leider in Englisch (solltest du aber als [angehender] Programmierer gut beherrschen)
-
k danke für alle Antworten...
Könnt ihr mir vielleicht noch sagen, obs irgendwo ne gescheite Funktions/Befehlsrefernz für c++ gibt?Ich les hier immer beiträge, Wie Strings aus einer Datei lesen etc... Woher kennt irh all diese Funktionen? könnt ihr mir da weiterhelfen?
Also ich hab hier zu Hause eine für PHP rumstehen, ist halt n komplettes Buch, aber vielleicht gibts ja sowas in der Richtung auch für cpp online als pdf...gemuse
-
-
@davie
Da ist ein Memoryleak drin. wer mit new[] belegt, muß mit delete[] freigeben. Das letztere taucht aber nirgends auf.
-
hab ich beim kommentieren ganz vergessen.
muss ich ausbessern!
-
Hab noch n kleines Prob.
int *pArray = new int[Anzahl];
Warum funktioniert der new Operator eigentlich nur bei Zeigern? Warum könnte ich nicht einfach int variable = new int[Anzahl]; machen?
Wenn ich das richtig verstanden hab funktioniert der new operator nur mit arrays??? (anders kanns ja eigentlich net gehen oder?)
gemuse
-
nein, ein einzelnes objekt machst du mit new, mehrere mit new [anzahl]
new gibt immer zeiger zurück
-
k danke!
Hab nochmal ne FrageNachdem ich erfahren hab, das system("PAUSE"); nicht gerade c++, wollt ich mal Fragen wie die Alternativen dazu genau funktionieren?
Wie davie gesagt hat: cin.clear(); cin.ignore(); cin.getline(); etc...
Was muss ich jetzt genau machen, dass das Dos Fenster nicht einfach verschwindet???
noch ne Frage, wie kann man eigentlich Text in einem Windows Fenster ausgeben lassen?
gemuse
-
FAQ lesen:
Automatisches Schließen verhindernund
http://www.schornboeck.net/ckurs/index.htmist auch noch ein guter C++ Kurs zum Einstieg
-
Original erstellt von davie:
**#include <stdlib>
**
<cstdlib>
[ Dieser Beitrag wurde am 18.04.2003 um 20:51 Uhr von nman editiert. ]