学术不精
2015-07-11 17:45
老师,我这里str和st2在一起
$1 = (char (*)[6]) 0x7fffffffe660
(gdb) p &str2
$2 = (char **) 0x7fffffffe668
(gdb) p &str3
$3 = (char (*)[10]) 0x7fffffffe650
所以溢出的话 str2被修改,而str2不能被该,所以都会运行报错。。如何让str3和str1在一起?
str2
是*str2吗
你的str2是在数据段(
(gdb) p &str2
$2 = (char **) 0x7fffffffe668
),那就是可以修改的,代码段才不能修改,至于谁和谁会连续分配在一起,这都是不可预料的,像你的str2就没放在代码段,不同的编译器会有不同的优化,只有数组才会确定连续分配在一起
Linux C语言指针与内存
116475 学习 · 250 问题
相似问题