gpt4 book ai didi

c++ - void ** 相当于 void * 返回?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:55:10 25 4
gpt4 key购买 nike

    void * alligned_malloc(size_t bytes , uint16_t allign)
{

uint16_t offset = allign - 1 + sizeof(void*);

void* p1 = malloc(offset + bytes);
void**p2 = (void**)(((size_t)p1+offset) & ~(allign - 1));
p2[-1] = p1;

return p2; // Why is this correct ? should not the return be p2[0] as it is returning void**

}

请帮助我理解这个修改后的 malloc void** 是如何等同于 void * return 的?

最佳答案

任何类型的指针都可以隐式转换为 void *,包括指向 void * 的指针,又名 void **

关于c++ - void ** 相当于 void * 返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21107883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com