淡怀 2017-10-31 15:55 采纳率: 0%
浏览 1660
已采纳

段错误,求大神解释一下

6 int main(void) {
(gdb) n
7 char arr[] = "hello";
(gdb) n
8 char *p = "world";
(gdb) n
9 printf("pid:%d\n",getpid());
(gdb) n
pid:10709
10 printf("&arr:%p\n&p:%p\nworld:%p\nhello:%p\n",&arr,&p,p,"hello");
(gdb) n
&arr:0x7fffffffdff0
&p:0x7fffffffdfe8
world:0x400810
hello:0x400841
11 printf("arr:%s\n",arr);
(gdb) n
arr:hello
12 printf("p:%s\n",p);
(gdb) n
p:world
13 strcpy(p,arr);
(gdb) n

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7ab14e6 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) n
Cannot find bounds of current function
(gdb) n

0x00007ffff7ab14e6这个地址是什么意思,这个是虚拟地址?系统想告诉我这个虚拟地址没有对应的物理地址?

  • 写回答

1条回答 默认 最新

  • threenewbee 2017-11-01 00:28
    关注

    strcpy(p,arr);
    错误在这里,p指向常量区,不能写入
    还有你看到的地址,都是逻辑地址。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件