qfedu-c-level/day11/d7_2.c

27 lines
480 B
C
Raw Normal View History

// 在 create 函数中申请的内存发生了泄漏
#include <stdio.h>
#include <stdlib.h>
#include <string.h> // memset
void create(char *p, int n)
{
p = (int *)malloc(n);
memset(p, '\0', n);
if (NULL == p)
{
perror("malloc error");
}
}
int main()
{
int *p = NULL;
create(p, 32);
scanf("%s", p);
printf("==>%s\n", p);
// 用完之后,释放空间
free(p);
return 0; // p 指向的空间没有释放,内存泄漏
}