gpt4 book ai didi

c - 将 void 指针转换为 char 指针是否安全

转载 作者:行者123 更新时间:2023-12-04 09:19:27 25 4
gpt4 key购买 nike

只是想知道像这样转换是否安全:

char **cpp;
// ... allocation and what not
void *vp = (void *)cpp;
// ...
cpp = (char **)vp;

应该使用 void ** 还是 void * 可以?这在我的几个盒子上没有问题,但想知道它是否会在某些系统上引起问题。

最佳答案

转换总是安全的,只要指针有效,取消引用它就是安全的。您将使用 void ** 的唯一情况是您计划取消引用它以获得 void *

但是,除非您进行指针运算,否则这并不重要。正如您在 http://codepad.org/UcZUA0UL 上看到的那样无论您使用 void* 还是 void **,它都可以正常工作。在您实际使用指针之前,您无论如何都要将它强制转换回 char ** - 因此当它是 void-ish 时它永远不会被取消引用。

关于c - 将 void 指针转换为 char 指针是否安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10555320/

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