malloc函数说明:

    1. #include <stdlib.h>
    2. void *malloc(size_t size);
    3. 功能:在内存的动态存储区(堆区)中分配一块长度为size字节的连续区域,用来存放类型说明符指定的类型。
    4. 分配的内存空间内容不确定。
    5. 参数:
    6. size:需要分配内存大小(单位:字节)
    7. 返回值:
    8. 成功:分配空间的起始地址
    9. 失败:NULL

    free函数说明:

    1. #include <stdlib.h>
    2. void free(void *ptr);
    3. 功能:释放ptr所指向的一块内存空间,ptr是一个任意类型的指针变量,指向被释放区域的首地址。
    4. 对同一内存空间多次释放会出错。
    5. 参数:
    6. ptr:需要释放空间的首地址,被释放区应是由malloc函数所分配的区域。
    7. 返回值:无

    示例代码:

    1. #include <stdlib.h>
    2. #include <stdio.h>
    3. int main() {
    4. int i, *arr, n;
    5. printf("请输入要申请数组的个数: ");
    6. scanf("%d", &n);
    7. // 堆区申请 n * sizeof(int) 空间,等价int arr[n]
    8. arr = (int *)malloc(n * sizeof(int));
    9. if (arr == NULL) { // 如果申请失败,提前中断函数
    10. printf("申请空间失败!\n");
    11. return -1;
    12. }
    13. for (i = 0; i < n; i++){
    14. // 给数组赋值
    15. arr[i] = i;
    16. }
    17. for (i = 0; i < n; i++) {
    18. // 输出数组每个元素的值
    19. printf("%d, ", *(arr+i));
    20. }
    21. // 释放堆区空间
    22. free(arr);
    23. return 0;
    24. }