本文共 298 字,大约阅读时间需要 1 分钟。
C允许将void *指针赋值给任何类型数据的指针,无需转换,但是C++不行。这种情况常出现于C代码中使用malloc分配内存时。
例如,下面这段代码在C中可以运行,但是C++不能。
void* ptr; int *i = ptr; //隐式转换void*为int* 或者: int *j = malloc(sizeof(int) * 5); //隐式转换void*为int*为了在C和C++中都能编译,需使用下面的显示转换:
void* ptr; int *i = (int *) ptr; int *j = (int *) malloc(sizeof(int) * 5);转载地址:http://vmeji.baihongyu.com/