【发布时间】:2013-11-19 06:12:29
【问题描述】:
我现在正在失去理智,下面是我正在尝试做的事情。
char* buffer;
sprintf(buffer, "0x%08x", 5);
*(int *)(0x834AF2AC + 0x1a) = ?buffer?;
缓冲区 = 0x05000000
我需要在内存中设置它,如果我只设置 05 它将设置为 0x00000005
问题问得更好。 如何将 INT 转换为“0x%08x”格式 所以5变成0x05000000
回答: 正确答案是 *(int *)(0x834AF2AC + 0x1a) = 5
【问题讨论】:
-
你有比转换为
int更大的问题。你正在写一些你不应该写的地方。你需要初始化buffer。 -
那么,
int x = 0x05000000;不适合你? -
所以,它仍然没有真正的意义。您是否有需要解析的字符串或想要增大的 int?
-
那么字符串与它完全无关?
int x = 5 << 24; -
因为你把它放在了错误的地址。如果您解释了为什么要这样做并且没有将问题与
int -> string -> int废话混淆,那么获得一个好的答案会容易得多。