- 论坛徽章:
- 1
|
也应该被替换了 不会泄漏
[ann@gutsy tmp]$ cat a.c b.c
/* file: a.c */
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char str[] = "Hello World!";
char *p = malloc(20);
memset(p, 0, 20);
memcpy(p, str, sizeof(str));
printf("%s\n", p);
printf("%0x\n", p);
if(execl("/tmp/called","caller",(char *)NULL) < 0)
perror("exec fail:");
// free(p);
}
/* b.c */
/* gcc b.c -o /tmp/called */
#include <stdio.h>
int main()
{
void *p;
scanf("%0x", &p);
printf("%0x\n", p);
printf("%s\n", (char *)p);
}
运行下是段错误 |
|