0

ポインターのアドレスを文字列として保存しようとしています。つまり、アドレスを構成するバイトの内容を char ベクトルに挿入したいと考えています。

これを行う最善の方法は何ですか?

64ビットシステムを含め、完全に移植可能な方法が必要です。

4

5 に答える 5

2

最も簡単な方法は、

char buf[sizeof(void*) * 2 + 3];
snprintf(buf, sizeof(buf), "%p", /* the address here */ );
于 2013-06-02T14:57:48.933 に答える
1
std::string serialized (std::to_string ((intptr_t) ptr));
于 2013-06-02T15:03:44.447 に答える
1

これを行う C++ の方法は、文字列ストリームを使用することです

#include <string>
#include <sstream>

int main()
{
    MyType object;
    std::stringstream ss;
    std::string result;

    ss << &object; // puts the formatted address of object into the stream
    result = ss.str(); // gets the stream as a std::string

    return 0;

}
于 2013-06-02T15:04:19.803 に答える
0
void storeAddr(vector<string>& v,void *ptr)
{
    stringstream s;
    s << (void*)ptr ;
    v.push_back(s.str());
}
于 2013-06-02T15:03:04.400 に答える