qfedu-c-level/day11/d7.c

27 lines
477 B
C

// 内存泄漏
#include <stdio.h>
#include <stdlib.h>
#include <string.h> // memset
int *create(int n)
{
int *p = (int *)malloc(n * sizeof(int)); // n*4
memset(p, 0, n * sizeof(int));
if (NULL == p)
{
perror("malloc error");
}
return p;
}
int main()
{
int *p = create(5);
p[0] = 100;
printf("%d\n", *p); // *p = p[0]
// 用完之后,释放空间
free(p);
return 0; // p 指向的空间没有释放,内存泄漏
}