我爲窗口轉換回__int64或長期
#ifdef _WIN64
typedef uint64_t unit_pointer;
# define PRINTF_PTR "%I64x"
#else
typedef unsigned long unit_pointer;
# define PRINTF_PTR "%lx"
#endif
TEST *obj = &test_obj;
char obj_pointer_add[50];
sprintf(obj_pointer_add, PRINTF_PTR, (unit_pointer)obj);
現在我想重新在其他地方obj的指針定義一個指針地址字符地址,因爲我知道obj_pointer_add。 我如何將obj_pointer_add轉換回unit_pointer?
unit_pointer point_address= (unit_pointer)obj_pointer_add; (ERROR CONVERTING)
TEST *new_obj = reinterpret_cast<TEST *>(point_address); (fail because of pointer_address wrong)
感謝
你怎麼知道指針是無符號的64位數? – 2013-03-14 09:06:07
如果您想使用'printf'打印一個指針,您應該使用''%p「'格式。 – 2013-03-14 09:07:23