C++分配一个变量指针地址

C++ assign a variable pointer address

本文关键字:一个 变量 指针 地址 分配 C++      更新时间:2023-10-16

我想要接收一个DWORD类型的变量,该变量将包含地址指针float*
如果我写这个:

float *Object = 5;  
std::cout << &Object;

它正好给了我想要的值(即:0F235C1A)。你能告诉我如何将这个值分配给DWORD以便在我的内存写入函数中使用吗
尝试:

DWORD ObjAddress = &Object;

我得到编译器错误:cannot convert from 'float *' to 'DWORD'

我不理解您的对象定义:

float *Object = 5;  

5应该是一个地址吗?价值?

请参阅以下代码,也许这正是您想要的。

float Object = 5;
int ObjAddress =  (int)&Object;
cout << "object adr1: "<< hex << &Object << endl;
cout << "object adr2: "<< hex << ObjAddress << endl;

输出

object adr1: 0x28ff08
object adr2: 28ff08

或者当你真的需要对象作为指针时

float value = 5;
float *Object = &value;
int ObjAddress =  (int)&Object;
cout << "object adr1: "<< hex << &Object << endl;

您只需要强制转换&Object;

DWORD ObjAddress = (DWORD)&Object;

我认为这会解决你的问题。

我认为您可以像这样使用repret_cast(用DWORD替换无符号长)

#include <iostream>
int main(void)
{
    float *object  = new float;
    *object = 5;
    unsigned long objAddress = reinterpret_cast<unsigned long>(&object);
    std::cout<<objAddress<<std::endl;
    return 0;
}