|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Salim Gast
|
Verfasst am: 14.10.2002, 13:34 Titel: Strings |
|
|
Hallo,
eine Frage zum folgenden Quelltext:
void main(void)
{
char* Str="Hallo";
Str="Hello World";
...
// Str wird nicht mehr gebraucht
// ? delete Str;
}
Muss ich am ende Str mit delete löschen oder nicht? Ich bin mir nicht sicher, aber ich glaube nicht weil ich nicht Str mit new erstelle.
thx
A.Salim Doost
www.asdnet.de.vu |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 14.10.2002, 13:46 Titel: |
|
|
Ich weiß jetzt nicht, ob ich lachen oder weinen soll >.<
Code: |
void main()
{
char * foo = new char[MAXSTRINGSIZE];
strcpy(foo, "Hello World");
cout << foo << endl;
delete foo;
}
|
Man darf mit C-like Strings das nicht machen: "foo = "Hello World", da ein String nur ein Array ist, und damit ein Zeiger. _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 14.10.2002, 14:03 Titel: |
|
|
Was Hazel sagen will ist, dass du zwar am Anfang
char* Str = "Hallo";
nutzen kannst, da der Compiler daraus:
char Str[] = { 'H','A','L','L','O',0 };
macht. Danach wird sowas nicht anderes als Fehler verursachen.
Du musst den String auch nicht deleten, da du ja keinen dynamischen Speicher (auf dem Heap) reserviert hast.
Christian |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|