在C语言中,用于动态内存分配的函数是malloc(),其头文件是stdlib.h。 使用malloc()函数可以在程序运行时动态地为变量分配内存。
malloc()函数原型如下:
void *malloc(size_t size);
其中,size_t是一种无符号整数类型,用于表示要分配的内存大小,单位是字节。malloc()函数返回一个指向分配内存的指针,如果分配失败,则返回NULL。
使用malloc()函数可以为数组、结构体等动态分配内存。例如,下面的代码定义了一个长度为n的整型数组,然后使用malloc()函数为其动态分配内存:
#include <stdio.h> #include <stdlib.h> int main() { int n, i; printf("Enter the size of the array: "); scanf("%d", &n); int *arr = (int *) malloc(n * sizeof(int)); if (arr == NULL) { printf("Memory allocation failed\n"); exit(1); } printf("Enter elements of the array: "); for (i = 0; i < n; i++) { scanf("%d", &arr[i]); } printf("Array elements are: "); for (i = 0; i < n; i++) { printf("%d ", arr[i]); } free(arr); return 0; }
在上面的代码中,首先从用户输入中读取数组大小,然后使用malloc()函数为数组动态分配内存。如果分配失败,则输出错误信息并退出程序。接着,读取数组元素并输出,最后使用free()函数释放动态分配的内存。 需要注意的是,使用malloc()函数分配的内存需要手动释放,否则会导致内存泄漏。在上面的程序中,使用free()函数释放了动态分配的内存。
评论