gpt4 book ai didi

c - 为什么类型转换为 void 指针?

转载 作者:太空狗 更新时间:2023-10-29 16:28:37 25 4
gpt4 key购买 nike

作为 C 的新手,我从 void 指针中得到的唯一实际用途是用于可以在给定指针中存储不同数据类型的多功能函数。因此,在进行内存分配时,我没有对指针进行类型转换。

我看到一些代码示例有时使用 void 指针,但它们被类型转换了。为什么这有用?为什么不直接创建所需类型的指针而不是 void?

最佳答案

在 C 中将 void 指针转换为另一种类型有两个原因。

  1. 如果你想访问指针指向的东西(*(int*)p = 42)
  2. 如果您实际上是在使用 C 和 C++ 的通用子集而不是“真正的”C 编写代码。另请参阅 Do I cast the result of malloc?

1 的原因应该很明显。第二是因为 C++ 不允许从 void* 到其他类型的隐式转换,而 C 允许。

关于c - 为什么类型转换为 void 指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16986214/

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