C++: Dynamische Arrays - Seite 2

Seite 2 von 2 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/c_dynamische_arrays_95465/page_2 - zur Vollversion wechseln!


PuhBär schrieb am 13.10.2003 um 15:34

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


vossi schrieb am 13.10.2003 um 15:40

ich danke dir edler puhbär :)
endlich bringt jemand licht in die sache :)


Ringding schrieb am 13.10.2003 um 19:30

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 schrieb am 13.10.2003 um 19:32

ich hab aber keine STL :rolleyes:

#include <vector> haut nicht hin


mat schrieb am 13.10.2003 um 19:37

http://www.sgi.com/tech/stl/download.html

gcc hat eine eigene stl, aber die is ziemlich schwach.


vossi schrieb am 14.10.2003 um 00:37

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 schrieb am 14.10.2003 um 01:16

Zitat
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

Zitat
.. 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.

Zitat
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 schrieb am 14.10.2003 um 01:22

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 schrieb am 14.10.2003 um 13:03

@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




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026