C++: Dynamische Arrays
vossi 12.10.2003 - 21:07 1580 23
PuhBär
Schau ned so genau
|
wennst ein array zur laufzeit dimensionieren willst machsd:
WeinTypeRecord* weinType = (WeinTypeRecord*)malloc(anzahl);
wennst es schon vorm kompilieren weisst dann:
WeinTypeRecord winType[20];
redimensionieren dann mit: "realloc()"
UND, nach gebrauch unbedingt mit: "free(weinType)" evtl. vorher noch auf NULL-pointer überprüfen
EDIT: ok, die [] in da 1en zeile warn crap
Bearbeitet von PuhBär am 14.10.2003, 13:00
|
vossi
been there, done that
|
ich danke dir edler puhbär endlich bringt jemand licht in die sache
|
Ringding
Pilot
|
Nur dass es absolut scheußlich ist, sowas in C++ zu machen, und obendrein sind allein in dieser einen Zeile 2 Fehler. Also hör bitte nicht auf ihn und mach's mit der STL.
|
vossi
been there, done that
|
ich hab aber keine STL #include <vector> haut nicht hin
|
mat
AdministratorLegends never die
|
|
vossi
been there, done that
|
ich machs jetzt schon mit einer doppelt verketteten liste.
Aber ich habe ein riesen Problem .. die speicherbereiche in denen ich abspeichere weren überschrieben und ich kann keine Strings mehr machen (zu doof oder so :P)
kann mir jemand auf die Sprünge helfen? Wie initiere und befülle ich eine char* (oder char *) variable und WAS ist der unterschied zwischen
char* bla; char *bla;
und die letzte doofe Frage .. wie initiere ich in C++ objekte einer Klasse? gleich wie in Java? "Class object = new Class(...);" oder anders?
|
mat
AdministratorLegends never die
|
Wie initiere und befülle ich eine char * variable char *szBuffer = new char[10] // -> 10 Bytes werden initialisiert memcpy, strcpy (sowie viele andere stringfunktionen) zB strcpy(szBuffer,"Inhalt"); delete [] szBuffer; // -> delete niemals vergessen.. [] weil du mehrere chars intialisiert hast .. wie initiere ich in C++ objekte einer Klasse? genauso wie einen string.. CMyClass *pMyClass = new CMyClass(/* Constructor Parameter hier */); // delete nicht vergessen.. diesmal ohne [] oder: CMyClass MyClass(/* Constructor P... */); .. Destructor wird dann nicht über delete sondern beim verlassen des raumes (grrr.. schlechtes wort, hab kein besseres parat) - lokal, oder global - automatisch aufgerufen. char* bla; char *bla; gibt keinen.. ------------ deine fragen hören sich so an, als würdest du c++ lernen wollen. ich rate dir ein buch durchzuackern.. dann hast du ein gutes basiswissen und kannst versiertere fragen stellen. viel erfolg, mat
|
vossi
been there, done that
|
danke .. ich konnte das schon mal aber nach jahren java und php vergisst man es einfach wieder. bin froh wenn ich das hinter mir habe
|
PuhBär
Schau ned so genau
|
@ringding: stimmt, bei objekten sind vektoren hübscher
malloc is halt a klassiker bei char buffern...
poste halt codebeispiele wies richtig geht, dann haben so n00bs wie ich keine chance crap zu posten
Bearbeitet von PuhBär am 14.10.2003, 13:15
|