#include <stdio.h>
#include <stdlib.h>

int *create_int_arr(int n)
{
    // 申请内存空间
    int *arr = (int *)malloc(n * sizeof(int));
    // 条件判断时，常量放在前面，变量放在后面
    if (NULL == arr)
    {
        // printf("malloc error\n");
        perror("malloc error"); // 打印错误信息, perror 会打印出错误信息
        return NULL;            // 返回空指针
    }
    perror("malloc success"); // 打印成功信息
    return arr;               // 返回数组首地址
}

void input_int_data(int *q, int n)
{
    int temp = n;
    // 输入数据
    while (n--)
    {
        printf("请输入第%d个数据:", temp - n);
        scanf("%d", q++);
    }
}

void print_data(int *q, int n)
{
    // 打印数据
    while (n--)
        printf("%d ", *q++);
    printf("\n");
}

int main()
{
    int *p = NULL; // NULL == 0,用来表示指针指向的内存空间不存在
    p = create_int_arr(10);
    input_int_data(p, 10);
    print_data(p, 10);
    free(p); // 释放内存空间
    return 0;
}