C和C++中void*的区别


          C和C++中void*的区别


                   本文翻译自:http://www.geeksforgeeks.org/g-fact-12-2/
                        translated By qianghaohao

              正文:

                      C语言中在没有强转的情况下,允许void*赋给其他任何类型的指针,但是在C++
   中是不允许的。这个用法经常在C代码中使用malloc分配内存时出现。比如,下列用法在C
   中是对的,但是在C++中会报错:
  void* ptr;
  int *i = ptr; /* Implicit conversion from void* to int* */
     或者类似的:
int *j = malloc(sizeof(int) * 5); /* Implicit conversion from void* to int* */
   为了使得代码在C和C++中都通过编译,必须使用强转: 
  void* ptr;
  int *i = (int *) ptr;
  int *j = (int *) malloc(sizeof(int) * 5);

         源代码:

posted on   CodeNutter  阅读(275)  评论(0)    收藏  举报

编辑推荐:
· 通过一个DEMO理解MCP(模型上下文协议)的生命周期
· MySQL下200GB大表备份,利用传输表空间解决停服发版表备份问题
· 记一次 .NET某固高运动卡测试 卡慢分析
· 微服务架构学习与思考:微服务拆分的原则
· 记一次 .NET某云HIS系统 CPU爆高分析
阅读排行:
· 7 个最近很火的开源项目「GitHub 热点速览」
· DeepSeekV3:写代码很强了
· MySQL下200GB大表备份,利用传输表空间解决停服发版表备份问题
· Visual Studio 2022 v17.13新版发布:强化稳定性和安全,助力 .NET 开发提
· AI浏览器自动化实战
< 2025年4月 >
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 1 2 3
4 5 6 7 8 9 10

导航

点击右上角即可分享
微信分享提示