use*_*943 1 c c++ windows char void-pointers
如果文件是.c MSVC将编译.
如果它是.cpp它 "cannot convert from 'void *' to 'unsigned char *'"
我使用MEMORY_BASIC_INFORMATION::BaseAddress的windows.h是void*,将其分配给一个char*让我看见你知道实际的地址?
当我把它转换为char*,然后回到void*(在windows函数中使用它)时,它就像错误并丢失数据或其他东西
该怎么办?
在C++中,您必须使用显式强制转换将其转换void*为其他内容:
void *vp;
unsigned char *cp = static_cast<unsigned char *>(vp);
Run Code Online (Sandbox Code Playgroud)
这确实不同于C中的情况,其中a void*可以隐式转换为任何其他指针类型.相反的情况仍然如C:
void *vp = cp; // no need for a static_cast
Run Code Online (Sandbox Code Playgroud)
不过,我不明白你为什么会需要一个char*能够"看到实际的地址"为void*可打印为-是operator<<在std::ostream和std::printf同%p.