间接引用void*,会对手关于类型的信息
使用前要转换正确的类型
//: C03:CastFromVoidPointer.cpp
// From Thinking in C++, 2nd Edition
// Available at http://www.BruceEckel.com
// (c) Bruce Eckel 2000
// Copyright notice in Copyright.txt
int main() {
int i = 99;
void* vp = &i;
// Can't dereference a void pointer:
// *vp = 3; // Compile-time error
// Must cast back to int before dereferencing:
*((int*)vp) = 3;
} ///:~
(int*)vp 告诉编译器把他当作 int*处理,可对他间接引用
void*有漏洞,允许把一种类型看作是另一种类型。
如果把void*变成 int*, 转换成double*或char*,会改变已经分配给int的空间,引起崩溃
应当避免使用void指针,除少见的特殊情况