代码: 全选
(gdb) list
1 #include<stdio.h>
2 #include<string.h>
3
4 int main(int argc,char*argv[])
5 {
6 char *str = "Hello";
7 char *str1 = " World";
8 strcat(str,str1);
9 printf(str);
10 return 0;
(gdb)
11 }
代码: 全选
Breakpoint 1, main () at strcat.c:6
6 char *str = "Hello";
(gdb) n
Breakpoint 2, main () at strcat.c:7
7 char *str1 = " World";
(gdb) n
Breakpoint 3, main () at strcat.c:8
8 strcat(str,str1);
(gdb) n
Program received signal SIGSEGV, Segmentation fault.
0xb7df1ad5 in strcat () from /lib/tls/i686/cmov/libc.so.6
(gdb)
网上查了是内存溢出。但是我在网上查strcat的用法和上面的一模一样。
man 3 strcat看了下strcat的文档,文档的说明,上面的用法也是合法的。
为什么这里却会报错呢?
不懂,求助。