正确解除引用指针

时间:2015-04-22 14:42:11

标签: c++ pointers

我正在努力处理一段C ++代码中的指针。不用多说了,让我告诉你我的一部分代码:

file1.cpp

void *SomeClass::extract()
{
    double foo = 3.14;
    return (void*) &foo; // returns the pointer to a double
}

file2.cpp

void * bar = SomeClass->extract(); // fetches the pointer to a double
fprintf(screen, "pointer address: %p \t value: %.3e \n", bar, (double*) bar);

(由于代码的大量过度简化,可能存在不一致。)我基本上想要做的是在foo中打印出file2.cpp的值,这是通过调用函数来检索的在file1.cpp。当我比较foobar的指针地址时,我发现它们是相同的。但是当我想要取消引用指针时,我会变得虚伪。我怀疑我在解除引用时做错了什么,但是当我将它与代码的其他部分(我没有按照自己的方式编写)进行比较时,它似乎是有效的。

我知道这应该是非常基本的C ++,但不知何故它对我不起作用。如果有人能解释我如何正确地完成这项工作,我将非常感激。

马亭

0 个答案:

没有答案
相关问题