// 在 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 指向的空间没有释放，内存泄漏
}