Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » memmove klappt irgendwie nicht

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 <
010
01.10.2004, 14:44 Uhr
virtual
Sexiest Bit alive
(Operator)


@Windalf
Ich weiß, daß Du als BWLer an steigenden Kurven interessiert bist, und sei es eben nur die des Speicherbedarfs, der in Windows im Taskmanager angezeigt wird, während ein Programm mit schlechtem realloc aufruf läuft...
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
01.10.2004, 14:51 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

Ich weiß, daß Du als BWLer an steigenden Kurven interessiert bist, und sei es eben nur die des Speicherbedarfs, der in Windows im Taskmanager angezeigt wird, während ein Programm mit schlechtem realloc aufruf läuft...


guter Konter
wobei es mir natürlich egal ist ob der Kurs steig oder fällt mir reicht es zu wissen in welche richtung er geht...
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 01.10.2004 um 14:52 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
01.10.2004, 14:57 Uhr
Pablo
Supertux
(Operator)



Zitat von virtual:

Daß das noch immer falsch sein kann, ist dier hoffentlich klar? Beachte diesen feinen aber kleinen Unterschied:



Das weiß ich ja, genau das war der Fehler, sagte ich. Und hab auch geändert.

Heißt das auch, dass wenn realloc fehlschlägt, wird d->data nicht verändert?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 01.10.2004 um 15:03 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
01.10.2004, 15:16 Uhr
virtual
Sexiest Bit alive
(Operator)


Genau:
wenn realloc fehlschlägt, bleibt der alte Speicher erhalten. Dieses x=realloc(x,...) ist also dann blöd, wenn realloy fehlschlägt, weil man dann nämlich nicht mahr den Pointer zum alten Speicher hat...
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
01.10.2004, 16:21 Uhr
Pablo
Supertux
(Operator)


Und sowas zu machen ist auch gefährlich aus dem gleichen Grund?


C++:
LITERAL* literals;
...
mem = sizeof(LITERAL)*(len+1);
literals = malloc(mem);
...
literals=memcpy(literals,src->literals, mem); /* das hier meine ich */


--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
01.10.2004, 16:28 Uhr
virtual
Sexiest Bit alive
(Operator)


Nein, weil memcpy nicht schiefgehen kann.
Allerdings stellt sich schon die Frage, warum Du es so machst:

C++:
literals = memcpy(literals, ...);


und nicht gleich einfach so:

C++:
memcpy(literals, ...);


Denn memcpy gibt immer den Zielbuffer zurück, die erneute Zuweisung ist also an dieser Stelle nicht sonderlich sinnvoll.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
01.10.2004, 16:29 Uhr
Pablo
Supertux
(Operator)


Ach so, das heißt, da kann ich das literals= weglassen.

Danke.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ 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: