免责声明:这是作业作业,但提出的问题与实际作业无关。
我必须为我的一个类实现一个简单的内存管理器,在函数my_malloc之前,函数返回之前返回的值是一个(比如: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
调用function();
void* mem = my_malloc(10*sizeof(char));
printf("Calling Function: %p\n", mem);
对不起,如果这不是有用的,但我认为这可能足以解决问题,而不会给所有600和代码行。
警告开始:
incompatible integer to pointer conversion assigning to 'void *' from 'int'
答案 0 :(得分:1)
调用my_malloc()
函数的代码可能没有为函数提供正确的声明/原型,因此它将返回的指针视为int
。
在调用my_malloc()
之前放置以下内容(理想情况下,这应该位于调用该函数的任何代码所包含的标题中,以及定义该函数以确保其正确的代码)。 / p>
void* my_malloc(size_t size);