pws*_*068 0 math warnings pointers
大家好!我正在尝试创建一个内存管理系统,以便用户可以调用myMalloc,这是我创建的一个方法.我有一个链表,跟踪我的空闲记忆.我的问题是当我试图在链表中找到空闲位的结尾时.我试图将该部分中的内存大小(在链接列表中)添加到指向可用空间前面的指针,就像这样.
void *tailEnd = previousPlace->head_ptr + ((previousPlace->size+1)*(sizeof(int));
Run Code Online (Sandbox Code Playgroud)
我希望这会给我一个指向该段末尾的指针.但是,我一直收到警告:
"算术中使用的'void*'类型的指针"
有没有更好的方法呢?谢谢!
指针算术使用基础类型的大小.如果int是4个字节:
int *p = some_address;
p++;
Run Code Online (Sandbox Code Playgroud)
将p增加4个字节.void不能用于指针算术,因为void没有与之关联的大小.如果要对void指针执行字节大小的算术运算,则需要将指针强制转换为字节大小的类型.