如何将整数转换为常量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 问题。


以上是如何将整数转换为常量void指针?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>