免责声明:这是一项家庭作业,但被问到的问题与实际作业无关。为什么一旦返回指针值就改变了?
我必须为我的一个类实现一个简单的内存管理器,函数my_malloc在函数返回之前正在返回的值是一个this(例如:0x7fb0049ed410),并且在调用函数中是它另一个(说:0x49ed410)。
my_malloc(unsigned int);
typedef void* Addr;
Addr raddr = (Addr) (memoryHeader + sizeof(header)))
printf("Giving Memory: %p : %p\n", addr, raddr);
return raddr
调用函数();
void* mem = my_malloc(10*sizeof(char));
printf("Calling Function: %p\n", mem);
对不起,如果这是没有帮助的,但我认为这可能是足以让整个问题不给的代码的所有600和东西线。
警告开始给出:
incompatible integer to pointer conversion assigning to 'void *' from 'int'
什么是'memoryHeader'?它是堆栈还是堆?我不认为你需要600行代码,但可能需要20或30行代码才能重现**问题描述问题是必要的。 –
如果问题是可重现的,这将有所帮助。即短的,自包含的,正确的(可编译的),例子会有所帮助; http://sscce.org/ – antak
[如何创建最小,完整和可验证示例](http://stackoverflow.com/help/mcve) –