(gdb) p &str $6 = (char (*)[6]) 0x7fffffffe130 (gdb) p &str2 $7 = (char **) 0x7fffffffe138 (gdb) p &str3 $8 = (char (*)[6]) 0x7fffffffe120
为什么我试验的结果是,str3内存地址最小,str次之,str2在最后,字符数组越界之后又到了str2里面,提示段错误?
不同编译器优化会不同,不必强求跟老师一样,你的str2就没放在代码段,这是编译器优化不同