如何将整数转换为常量void指针?
int getNumber(){
int number;
cin >> number;
return number;
}
const void * getPointer(){
const void *p = (const void *)getNumber();
return p;
}
给我一个错误:
警告:从不同大小的整数转换为指针
并且控制台崩溃
回答
如何将整数转换为常量 void 指针?
从一个足够宽以表示所有指针值的整数类型开始。std::intptr_t是这样的类型。如果要从较窄的类型转换,则可以先将其转换为较宽的类型。然后使用 reinterpret_cast。
并且控制台崩溃
显示的程序不是那次崩溃的原因。
请注意,将整数转换为指针是一种很少需要的高级技术。如果您是初学者,那么您可能会面临XY 问题。