C和C++中void*的区别
C和C++中void*的区别
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 2016-04-11 14:31 CodeNutter 阅读(266) 评论(0) 编辑 收藏 举报