 |
JLI Spieleprogrammierung
|
| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
C++Builder Senior JLI'ler

Anmeldedatum: 04.10.2003 Beiträge: 235
Medaillen: Keine
|
Verfasst am: 09.01.2004, 21:18 Titel: |
|
|
@HotAcid
wenn ich den string dynamisch erzeuge hab kann ich ihn ja nicht wieder freigeben, sonst habe ich ja wieder das gleiche Problem.
Und das Problem hab ich eigentlich mit dieser Funktion:
| Code: |
char *zerwurstle(char *String)
{
mstring string(String);
srand(time(NULL));
for(int i=0;i<string.len()*100;i++)
{
string.exch((int)rand()%string.len(),(int)rand%string.len());
}
return string.get();
}
|
die soll die char-Zeichen des String vertauschen das sie durcheinander sind.
exch(int oldPos,int newPos) setzt das char-Zeichen von oldPos auf newPos und andersrum.
@Lord
hab ich doch schon der String wird doch in string gespeichert. oder wie meinst du das?? |
|
| Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 38 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 09.01.2004, 21:24 Titel: |
|
|
Du gibst doch einen Zeiger auf die lokale Variable der Memberfunktion zurück. Nach dem Verlassen der Funktion existiert die Variable nicht mehr und du hast falsche Werte.
Wenn du aber eine Variable hast, die das gesamte Programm lang existiert(z.B. Membervariable), zeigt der zuzückgegebene Zeiger immer auf diese Variable und nicht auf eine zerstörte Variable bzw. ungültigen Speicher  _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
| Nach oben |
|
 |
HotAcid Super JLI'ler

Alter: 44 Anmeldedatum: 04.08.2002 Beiträge: 372 Wohnort: Berlin Medaillen: Keine
|
Verfasst am: 09.01.2004, 22:59 Titel: |
|
|
dann mach doch:
| Code: |
char* besseresZerwursteln(char* string)
{
mstring String(string);
zerwurstle(String)
return String.get();
}
char* zerwurstle(mstring& mystring)
{
srand(time(NULL));
for(int i=0;i<mystring.len()*100;i++)
{
string.exch((int)rand()%mystring.len(),(int)rand%mystring.len());
}
}
|
Wenn das Erzeugen von mstring in der Funktion nicht klappt, dann erzeugst du halt den mstring vorher und übergibst einfach eine Referenz
viele Grüße
Felix _________________ StGB §§ 328 Abs. 2 Pkt 3:
Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht. |
|
| 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
|