我需要使用知道地址初始化指针变量。请看下面的代码,ptr是最终目的地,ptr_address的值包含地址值,所以我需要做一些像ptr = value。
int *ptr;
int address;
address = 0x10000005;
ptr = address;
问题是编译器提供以下警告消息:
warning: assignment makes pointer from integer without a cast [enabled by default]
我的代码是否错误,或者在没有收到此编译器警告的情况下有其他方法可以执行此操作?
答案 0 :(得分:4)
使用演员:
intptr_t some_variable = 25;
int * ptr1 = (int *) 0x10000005;
int * ptr2 = (int *) some_variable;
或者在C ++中:
int * ptr1 = reinterpret_cast<int *>(0x10000005);
int * ptr2 = reinterpret_cast<int *>(some_variable);