gpt4 book ai didi

C—修改数据时出现段错误

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

关于我之前关于显示特定数据地址的内容的问题,我现在正在尝试修改各个地址的内容。这似乎是一个足够简单的任务,但每次尝试时我都会遇到段错误。我正在使用以下功能:

int mem_set(Cmd *cp, char *arguments)
{
int address = 0, value = 0;
char *location;

if(sscanf(arguments, "%x %x", &address, &value) == 2)
{
location = (char*)address;
*location = value;
}
else printf("Invalid input.\n");
return 0;
}

我应该能够通过查找其地址并将其替换为正确的十六进制值来将表中的项目(在这个文件中)从“s”更改为“x”,但是当我遇到段错误时它到达*location = value;。有什么想法吗?

谢谢!

最佳答案

您在此处将整数分配给指针

location = (char*)address;

应该是

location = (char*)&address;

您需要获取address的地址而不是它的值。

这是否会做你想要做的事情,是另一回事,但这就是你的程序调用未定义行为的原因,这可能会导致段错误。

关于C—修改数据时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28654136/

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