CString str("0x1b1be0")
void* ptr = NULL;
现在我想分配ptr = 0x1b1be0
。我如何实现这一目标?
答案 0 :(得分:1)
#include <sstream>
std::stringstream s;
s << "0x1234";
void* a;
s >> std::hex >> a;
答案 1 :(得分:1)
试试这个:
CString str("0x1b1be0");
void* ptr = (void *)_tcstoul(str.GetBuffer(), 0, 0);
这是纯粹的C:
#include <stdlib.h>
#include <stdio.h>
int main()
{
char *s = "0x1b1be0";
void *p = (void *)strtoul(s, 0, 0);
printf("%p", p);
return 0;
}
在Codepad上试用。
注意:此版本没有错误检查。只是为了证明这个想法。
答案 2 :(得分:0)
这是一段代码。
#include <sstream>
#include <iostream>
int main() {
void * x;
std::stringstream ss;
ss << std::hex << "0x1b1be0";
ss >> x;
std::cout << x << std::endl;
}
答案 3 :(得分:0)
你确定你知道指针是什么意思吗?
你知道指针对你的进程是私有的吗?他们在外面通常没有任何意义。
要回答你的问题,你显然必须:
intptr_t
格式说明符std::sscanf
将您的字符串转换为%x
。reinterpret_cast< void* >
。