C++中已知一个地址存放在string对象中,如何引用该地址上的对象?求大神

2025-04-04 03:45:43
推荐回答(3个)
回答1:

#include 
#include 
#include 
#include 
using namespace std;

int main() {
    int test = 123;
    string out;
    {
        ostringstream os;
        os << &test;
        out = os.str();
    }
    int ptrVal;
    sscanf(out.c_str(), "%x", &ptrVal);
    cout << (*reinterpret_cast(ptrVal));
    return 0;
}

回答2:

#include
#include
#include
using namespace std;
int main()
{
int test = 139;
string out;
ostringstream os;
os << &test;
out = os.str();
cout << "out = " << out << endl;
int m = out.length();
int k = 0;;
int i = m - 1;
unsigned int p = 0x00000000;
while(out[i]!='x')
{
if(out[i]<='9')
p |= ( (int(out[i]-'0')) << 4*k);
if(out[i]>='a')
p |= ( (int(out[i]-'a'+10)) << 4*k);
k++;
i--;
}
cout << "i = " << *((int *)p) << endl;
return 0;
}

回答3:

void* ptr;
ptr = atoi(out);