使用地址值初始化指针

时间:2013-12-28 14:43:44

标签: c++ c pointers

我需要使用知道地址初始化指针变量。请看下面的代码,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]

我的代码是否错误,或者在没有收到此编译器警告的情况下有其他方法可以执行此操作?

1 个答案:

答案 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);