27 lines
477 B
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 指向的空间没有释放,内存泄漏
|
||
|
}
|