从内存地址获取价值

时间:2019-03-20 07:36:58

标签: c++ pointers

我有一个int*变量,用于存储内存地址,例如示例地址0x28c1150

我想知道,该地址存储了什么值。

编辑:

struct list {
    int value;
    list *next;
    list *head = NULL;
    void push(int n);
    void select();
    void pop();
    void top();

};

void list::push(int value) {
    list *temp = new list;

    temp->value = value;
    temp->next = head;
    head = temp;
}
void list::top(){
    list * temp = new list;

    cout << head;
}

我想打印我的列表顶部

3 个答案:

答案 0 :(得分:1)

如果您的变量是list* variable = new list; variable->top();

top()

...但是请注意,当前的int list::top(){ return head->value; } std::cout << variable->top() << "\n"; 函数会泄漏内存,因为每次调用新列表时都会分配一个新列表,而您只是忘了它。尝试以下方法:

{{1}}

答案 1 :(得分:0)

您必须取消引用指针:

int x = 10;
// get void pointer to x
void* x_pointer_as_void = (void*)&x; 
// convert it back to a pointer to an int:
int* x_pointer = (int*)x_pointer_as_void;

如果指针为空,则必须将其强制转换为原始类型:

[102, 104, 108, 80000000, 8000000, 10000000, 1000000, 0x0008000, ....]

答案 2 :(得分:0)

在此(根据当前问题版本)

cout << head->value;