Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Speicher freigeben, der noch gebraucht wird

  Alt 6. Jul 2007, 00:12
Joa, MemCopy oder das gute alte Pascal Move(), etc

Nochmals im Detail:

Grundlegend: Du hast Speicheradresse angegeben welcher er einen Zeiger auf von ihm alloziierten Speicher zurück gibt. Genauso bekommt deine Funktion beim Aufruf einen Zeiger auf einen vom Aufrufer bereitgestellten Speicherplatz zur Verfügung. Nun hast du zwei Speicherplätze von denen du einen füllen sollst und den anderen musst du wieder freigeben. Du könntest natürlich auf das freigeben verzichten und einfach den Zeiger von dem Aufrufer auf den anderen Speicher zeigen lassen. Damit wäre dann der vom Aufrufer bereitgestellte Speicher verloren und der Aufrufer bekommt seine Daten im fremden Speicher. Von daher: kopieren.

Das du den Pointer des Aufrufers (SSID) überhaupt verbiegen kannst ist eigentlich schon bedenklich. Im Normalfall sollte das konstant sein und dadurch kann sich der Aufrufer sicher sein, dass sein beim Aufruf angegebener Speicher auch nach dem Aufruf immernoch der gleiche ist.
  Mit Zitat antworten Zitat