C和C++中void*的区别
2016-04-11 14:31
190 查看
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);
源代码:
http://en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 如何组织构建多文件 C 语言程序(二)
- 关于指针的一些事情
- 如何写好 C main 函数
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua和C语言的交互详解
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解