gpt4 book ai didi

将字符串格式的内存地址转换为C中的指针

转载 作者:行者123 更新时间:2023-11-30 15:01:17 24 4
gpt4 key购买 nike

我有一个文本文件,其中包含程序某些组件的内存地址。例如,该文本文件的一部分如下所示:

00400000-0040b000

7f9ae612f000-7f9ae62ee000

我已经将该文件读入我的程序并分配了一个带有首地址 (00400000) 的 char[]。

我还有一个带有空指针的结构

struct myStruct
{
void *address;
}

我希望指针*address的值为0x00400000,我该怎么做?

感谢您的帮助。

最佳答案

使用 sscanf() 将字符串解析为十六进制整数,然后将结果整数类型转换为 void* 指针。例如:

char str[] = "00400000";
unsigned long ul;
struct myStruct s;

sscanf(str, "%lx", &ul);
s.address = (void*) (uintptr_t) ul;

关于将字符串格式的内存地址转换为C中的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41528695/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com