malloc函数说明:
#include <stdlib.h>void *malloc(size_t size);功能:在内存的动态存储区(堆区)中分配一块长度为size字节的连续区域,用来存放类型说明符指定的类型。分配的内存空间内容不确定。参数:size:需要分配内存大小(单位:字节)返回值:成功:分配空间的起始地址失败:NULL
free函数说明:
#include <stdlib.h>void free(void *ptr);功能:释放ptr所指向的一块内存空间,ptr是一个任意类型的指针变量,指向被释放区域的首地址。对同一内存空间多次释放会出错。参数:ptr:需要释放空间的首地址,被释放区应是由malloc函数所分配的区域。返回值:无
示例代码:
#include <stdlib.h>#include <stdio.h>int main() {int i, *arr, n;printf("请输入要申请数组的个数: ");scanf("%d", &n);// 堆区申请 n * sizeof(int) 空间,等价int arr[n]arr = (int *)malloc(n * sizeof(int));if (arr == NULL) { // 如果申请失败,提前中断函数printf("申请空间失败!\n");return -1;}for (i = 0; i < n; i++){// 给数组赋值arr[i] = i;}for (i = 0; i < n; i++) {// 输出数组每个元素的值printf("%d, ", *(arr+i));}// 释放堆区空间free(arr);return 0;}
