小编use*_*624的帖子

转换为 (void**) 是否定义明确?

假设 A 是一个结构体,并且我有一个分配内存的函数

f(size_t s, void **x)
Run Code Online (Sandbox Code Playgroud)

我调用f分配内存如下。

struct A* p;
f(sizeof(struct A), (void**)&p);
Run Code Online (Sandbox Code Playgroud)

我想知道(void**)&p这里是否有一个明确定义的铸造。我知道在 C 中,将指针强制转换为明确定义的,void*反之亦然。不过,我不确定 的情况void**。我发现以下文档指出我们不应强制转换为具有更严格对齐要求的指针。是否void**有更严格或更宽松的对齐要求?

c c++ pointers casting pointer-conversion

7
推荐指数
1
解决办法
226
查看次数

标签 统计

c ×1

c++ ×1

casting ×1

pointer-conversion ×1

pointers ×1