gpt4 book ai didi

c - 在C中访问内存地址的内容

转载 作者:行者123 更新时间:2023-11-30 19:22:19 25 4
gpt4 key购买 nike

几个小时以来我一直在试图解决这个问题,这让我有点发疯。我在执行程序时不断遇到段错误,我该如何解决这个问题?我还收到警告“尝试从不同大小的整数指向指针”,但是当我使用cast (int *) 我仍然收到警告。请帮助...这是代码:

<小时/>
int address, length, i;
int * p = malloc(sizeof(int));

printf("Please enter <address> <length>\n");
scanf("%x %d", &address, &length);
p = (int *) address;

for (i=0; i<length;i++){
printf( "%02x ", p[i] );
}

最佳答案

这应该“有效” - 当然,您仍然必须输入有效的地址,否则代码将崩溃,因为您试图从无法读取的地址读取 - 您对此无能为力,缺少重写操作系统处理“您试图读取不存在或不属于您的内存”的部分。

uintptr_t address;
int length, i;
int *p;

// No need to malloc here. malloc(sizeof(int));

printf("Please enter <address> <length>\n");
scanf("%" PRIxPTR " %d", &address, &length);
p = (int *) address;

for (i=0; i<length;i++){
printf( "%02x ", p[i] );
}

关于c - 在C中访问内存地址的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16883332/

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