Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » arrays, unterschiedliche Datentypen und Methodenaufrufe

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 ]
010
01.07.2004, 00:43 Uhr
songbird




Zitat:
Windalf postete
[quote]
. braucht man da sicher einen vector??


das nicht aber er erleichtert dir die arbeit... vor allen dingen kann dein feld beliebig (soviel der speicher hergibt) gross werden ohne das du dich um irgendwas kümmern musst.
bei deinem beispiel passen ja nur maximal 100 rein. [/quote]
Ja, das ist klar. Aber hier im Text der Aufgabe steht, dass die Mitarbeiter (also Staff-Objekte) in einer Datenstruktur gespeichert werden sollen, die maximal 100 Mitarbeiter zweischenspeichern kann... Von daher ist das in diesem Fall egal.
Für größere Projekte sind Vektoren sicherlich sinnvoller, klar.


Zitat:
Windalf postete
müssten alle drei beispiel gehen allerdings ist lebenszeit der objekt auf den block in dem du sie definierst beschränkt wenn du sie nicht mit new allokierst...

was meinst du mit block *doof frag* ?

Zu den ersten beiden beispielen aus meinem letzten posting:
ist's egal ob man persons[0] = h1 oder *persons[0] = h1 schreibt?
Ich dachte, wenn man einem Pointer einen Wert zuweisen will, muss man das Sternchen davor schreiben?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
01.07.2004, 01:27 Uhr
typecast
aka loddab
(Operator)


Mit Block meint Windalf einen Codeblock der zwischen zwei geschweiften Klammern steht (in deinem Fall der Code innerhalb einer Funktion).

Du denkst richtig (glaub ich mal). Wenn du an die Addresse eines Pointers Daten schreiben willst, dann brauchst du den Stern. Wills du dem Pointer eine neue Addresse zuweisen, dann brauchst du den Stern nicht.

Von daher ist es nicht egal, ob du den Stern hinschreibst oder nicht.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
01.07.2004, 12:36 Uhr
songbird




Zitat:
typecast postete
Mit Block meint Windalf einen Codeblock der zwischen zwei geschweiften Klammern steht (in deinem Fall der Code innerhalb einer Funktion).


Das heißt, wenn ich die Objekte in der main-methode anlege, kannich außerhalb dieser Methode damit nicht arbeiten??
Haben wir nämlich bei unserer letzten Hausaufgabe auch so gemacht und konnten trotzdem in anderen Methoden darauf zugreifen.
Naja, war vielleicht Glück . Also in Zukunft dann wohl besser mit new...


Zitat:
typecast postete
Du denkst richtig (glaub ich mal). Wenn du an die Addresse eines Pointers Daten schreiben willst, dann brauchst du den Stern. Wills du dem Pointer eine neue Addresse zuweisen, dann brauchst du den Stern nicht.

Von daher ist es nicht egal, ob du den Stern hinschreibst oder nicht.

Genauso hab ich das auch verstanden. Dann würde also die erste Version meiner 3 Codebeispiele nicht funktionieren!?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
01.07.2004, 12:42 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

Das heißt, wenn ich die Objekte in der main-methode anlege, kannich außerhalb dieser Methode damit nicht arbeiten??


nein das heisst das die dinger "nur" so lange existieren so lange du die mainmethode nicht verlässt.(was ja erst zu programmende passiert) ob du da zwischendurch unterroutinen aufrufst oder nicht spielt keine rolle.
ums kurz zu sagen es geht wenn du es in main machst ist aber meist nicht die feine art...
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 01.07.2004 um 12:43 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
01.07.2004, 13:32 Uhr
songbird



achso! ok.
Dann werde ich es mal mit new versuchen und nur zur Not anders machen.

Ich hätte dann aber nochmal eine Frage zu Pointern/Referenzen.
Ich hab in einem Buch ein Beispiel dazu gefunden:


C++:
int main()
{
int age;
int &alter = age;
int *pAge = &age;

age = 25;

cout << "age hat den Wert: " << age << endl;

cout << "alter hat den Wert: " << alter << endl;

cout << "*age hat den Wert: " << *pAge << endl;

cout << "alter hat die Adresse: " << &alter << endl;

cout << "age hat die Adresse: " << &age << endl;

cout << "*pAge hat die Adresse: " << &pAge << endl;

return 0;

}



Das letzte cout verstehe ich zwar, aber wäre nicht die Adresse des Pointers einfach nur pAge???
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
01.07.2004, 13:40 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


nein pAge ist der Wert des pointers selber, welcher eine Adresse ist... Beim letzen willst du aber nicth die Adresse von dem wert haben auf die pAge zeigt (was ja der wert von pAge selber ist) sondern die Adresse von dem pointer pAge...
Ich glaub jetzt ist die vewirrung noch grösser oder?

PS: Und von Ihrer Väter Väter Väter... Danke reicht genauer brauchen wirs nicht...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
01.07.2004, 13:44 Uhr
songbird




Zitat:
Windalf postete
nein pAge ist der Wert des pointers selber, welcher eine Adresse ist... Beim letzen willst du aber nicth die Adresse von dem wert haben auf die pAge zeigt (was ja der wert von pAge selber ist) sondern die Adresse von dem pointer pAge...
Ich glaub jetzt ist die vewirrung noch grösser oder?

PS: Und von Ihrer Väter Väter Väter... Danke reicht genauer brauchen wirs nicht...


Ähhh, jetzt versteh ich gar nix mehr
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
01.07.2004, 13:50 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



C++:
int age; //soweit ja hoffentlich klar... das ist einfach eine integervariable in der ein wert steht
int *pAge = &age; //das ist quasi auch nur ne variable in der der wert steht an welcher stelle im speicher age zu finden ist...

int **ppAge=&pAge;   //das ist quasi eine variable in der der wert steht an welcher stelle im speicher pAge zu finden ist in dem wiederum der Wert steht an welcher Stelle age im Speicher zu finden ist

int ***pppAge=&ppAge; //das ist quasi eine variabel in der der wert steht an welcher stelle im speicher ppAge zu finden ist in dem wiederum der Wert steht an welcher Stelle pAge im Speicher zu finden ist wo dann wiederum steht an welcher stelle im Speicher age zu finden ist

int ****ppppAge=.....



so und deswegen hat mich das ganze an Life Of Brian erinnert...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
01.07.2004, 17:55 Uhr
songbird



ah jetzt ja

also int *pAge enthält ja nur die Adresse von int age, liegt aber selber ja auch irgendwo im Speicher hat also auch ne Adresse, nämlich int **ppAge usw.
Hoffe ich hab's richtig verstanden...

Wenn ja dann
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
01.07.2004, 18:17 Uhr
songbird



der nächste Rückschlag........

Jetzt dachten wir, wir haben es geschnallt und der Compiler meckert auch nicht, obwohl wir Zeiger benutzen (was ja nun wirklich schonmal ein Fortschritt ist)...
AAAABER... wenn wir jetzt run.exe ausführen wollen, stürzt das Programm ab, ohne auch nur irgendwas zu machen
Bei Compilerfehlern hatman ja wenigstens n Ansatz wonach man schauen muss... Aber so tappen wir ja mal total im Dunkeln...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ] [ 4 ]     [ 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: