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