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