pointers - Read memory block in C -


i have assignment need read , write memory block (pre-allocated), so, need implement 2 functions:

memory_read(base,offset,size); memory_write(base,offset,size,buffer); 

no problem far, implemented writing part. problem memory_read. need return chunk of data (perhaps void*), can cast whatever expecting outside , use it.

just example. let's have written serialised structure memory. this

void *variable; variable = memory_read(pointer_to_where_it_is,offset,sizeof(some_structure); (some_structure) variable // , use 

and memory_read does

void *memory_read(void *base, int offset, int size){     void *buffer;     buffer = malloc(size);     memcpy(&buffer,base+offset,size);     return buffer; } 

of course, since buffer lives in function stack, lose reference on return.

any idea on how it? not allowed modify function parameters teacher, otherwise have passed &variable parameter.

thanks!

in line:

memcpy(&buffer,base+offset,size); 

the problem trying copy block of memory stack-allocated-variable buffer instead of heap-allocated block of memory variable pointing to. fix remove &:

memcpy(buffer, base+offset, size); 

otherwise code fine.

update: don't forget free() returned buffer allocated memory doesn't "leak" :)


Comments

Popular posts from this blog

javascript - RequestAnimationFrame not working when exiting fullscreen switching space on Safari -

Python ctypes access violation with const pointer arguments -