Code: Select all
struct somestruct {
void *pointer;
};
struct somestruct function() {
struct somestruct ret;
ret.pointer = malloc(123);
// check after alloc
printf("pointer=%p\n", ret.pointer);
printf("size=%u\n", malloc_size(ret.pointer));
bzero(ret.pointer, 123); // do something with the memory
// check before return
printf("pointer=%p\n", ret.pointer);
printf("size=%u\n", malloc_size(ret.pointer));
return ret;
}
void anotherfunc() {
struct somestruct ret = function();
// final check
printf("pointer=%p\n", ret.pointer);
printf("size=%u\n", malloc_size(ret.pointer));
}
Code: Select all
pointer=0x2008000
size=4096
pointer=0x2008000
size=4096
pointer=0x2008000
size=0
Any idea what could be happening?