为了账号安全,请及时绑定邮箱和手机立即绑定

内存分配不对。。。

老师,我这里str和st2在一起

$1 = (char (*)[6]) 0x7fffffffe660

(gdb) p &str2

$2 = (char **) 0x7fffffffe668

(gdb) p &str3

$3 = (char (*)[10]) 0x7fffffffe650

所以溢出的话 str2被修改,而str2不能被该,所以都会运行报错。。如何让str3和str1在一起?

正在回答

2 回答

str2

是*str2吗

0 回复 有任何疑惑可以回复我~

你的str2是在数据段(

(gdb) p &str2

$2 = (char **) 0x7fffffffe668

),那就是可以修改的,代码段才不能修改,至于谁和谁会连续分配在一起,这都是不可预料的,像你的str2就没放在代码段,不同的编译器会有不同的优化,只有数组才会确定连续分配在一起

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Linux C语言指针与内存
  • 参与学习       116475    人
  • 解答问题       250    个

指针-C语言的核心,代领大家对c语言有更加深刻的理解

进入课程

内存分配不对。。。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信