- 论坛徽章:
- 0
|
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
main()
{
char *tmp,*p = NULL;
p = (char *)malloc(10*sizeof(char));
memset(p,0,10*sizeof(p));
printf("%s",p);
free(p);
} |
如上代码,运行后出现
*** glibc detected *** free(): invalid next size (fast): 0x0000000000501010 ***
======= Backtrace: =========
/lib/libc.so.6[0x5d4ac1]
/lib/libc.so.6(cfree+0x90)[0x5d80f0]
./b.out[0x80484b0]
/lib/libc.so.6(__libc_start_main+0xe0)[0x581390]
./b.out[0x80483a1]
======= Memory map: ========
00110000-00111000 r-xp 00110000 00:00 0 [vdso]
0054c000-00567000 r-xp 00000000 fd:00 28870108 /lib/ld-2.7.so
00567000-00568000 r--p 0001a000 fd:00 28870108 /lib/ld-2.7.so
00568000-00569000 rw-p 0001b000 fd:00 28870108 /lib/ld-2.7.so
0056b000-006be000 r-xp 00000000 fd:00 28870109 /lib/libc-2.7.so
006be000-006c0000 r--p 00153000 fd:00 28870109 /lib/libc-2.7.so
006c0000-006c1000 rw-p 00155000 fd:00 28870109 /lib/libc-2.7.so
006c1000-006c4000 rw-p 006c1000 00:00 0
00af2000-00afd000 r-xp 00000000 fd:00 28870119 /lib/libgcc_s-4.1.2-20070925.so.1
00afd000-00afe000 rw-p 0000a000 fd:00 28870119 /lib/libgcc_s-4.1.2-20070925.so.1
08048000-08049000 r-xp 00000000 fd:01 36 /tmp/b.out
08049000-0804a000 rw-p 00000000 fd:01 36 /tmp/b.out
08d8a000-08dab000 rw-p 08d8a000 00:00 0 [heap]
b7e00000-b7e21000 rw-p b7e00000 00:00 0
b7e21000-b7f00000 ---p b7e21000 00:00 0
b7f6b000-b7f6d000 rw-p b7f6b000 00:00 0
bf970000-bf985000 rw-p bffeb000 00:00 0 [stack]
Aborted (core dumped)
请问是代码有错误么?谢谢 |
|