Dar*_*ust 11
MyClass obj;
void *p;
p = (void*)&obj; // Explicit cast.
// or:
p = &obj; // Implicit cast, as every pointer is compatible with void *
Run Code Online (Sandbox Code Playgroud)
但要小心!obj以这种方式在堆栈上分配,一旦离开函数,指针就变为无效.
编辑:更新以显示在这种情况下不需要显式强制转换,因为每个指针都与void指针兼容.
你不能将非指针转换为void*.您需要将指针转换为您的对象void*
(void*)(&obj); //no need to cast explicitly.
Run Code Online (Sandbox Code Playgroud)
转换是隐含的
void* p = &obj; //OK
Run Code Online (Sandbox Code Playgroud)
如果使用地址,则可以将其转换为void指针.
MyClass obj;
void *ptr = (void*)&obj; // Success!
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9085 次 |
| 最近记录: |