hell-student
Lieutenant
- Registriert
- Nov. 2007
- Beiträge
- 671
Hallo Zusammen,
Ich bräuchte mal wieder etwas hilfe. Leider kann ja memcpy nicht ein "deep copy" durchführen. Dies führt dazu, dass nur Membervariablen bzw. führt es nur eine Kopie von einem Bytestring aus und kopiert somit Pointer, statt das zu kopieren, worauf der Pointer zeigt.
Folgende Situation:
Wie kann ich nun eine Kopie von cds_chunks ausführen? Ich habe ja ein Array von Structs.
Alle unsigned ints werden so wie sie sind kopiert, jedoch auch die Pointer -> In der Kopie zeigen die Pointer noch aufs Original. Wie kann ich dies am besten und effizientesten lösen?
thx
Ich bräuchte mal wieder etwas hilfe. Leider kann ja memcpy nicht ein "deep copy" durchführen. Dies führt dazu, dass nur Membervariablen bzw. führt es nur eine Kopie von einem Bytestring aus und kopiert somit Pointer, statt das zu kopieren, worauf der Pointer zeigt.
Folgende Situation:
Code:
typedef struct mem_chunk_ {
unsigned int addr; /* start address */
unsigned int size; /* size of the chunk */
unsigned int type; /* free = 0, blocked = 1 */
struct mem_chunk_ *pred; /* predecessor */
struct mem_chunk_ *succ; /* successor */
struct mem_chunk_ *next_free;
struct mem_chunk_ *next_cand;
unsigned int si_id;
unsigned int mol_id;
unsigned int id;
} mem_chunk;
static mem_chunk cds_chunks[512];
static mem_chunk cds_chunks_copy[512];
Wie kann ich nun eine Kopie von cds_chunks ausführen? Ich habe ja ein Array von Structs.
Alle unsigned ints werden so wie sie sind kopiert, jedoch auch die Pointer -> In der Kopie zeigen die Pointer noch aufs Original. Wie kann ich dies am besten und effizientesten lösen?
thx