C语言基础教程:动态内存分配
作者:野牛程序员:2023-12-28 14:59:05C语言阅读 2593
在C语言中,动态内存分配是一项重要的特性,它允许程序在运行时动态地分配和释放内存。这样的灵活性使得程序能够更有效地利用内存,同时也需要谨慎处理以避免内存泄漏和其他问题。
动态内存分配通常涉及到以下几个函数:
malloc函数: 用于分配指定大小的内存块,并返回指向该内存块的指针。如果分配失败,返回NULL。
void *ptr = malloc(10 * sizeof(int));
calloc函数: 类似于malloc,但是会将分配的内存块初始化为零。
int *arr = (int *)calloc(5, sizeof(int));
realloc函数: 用于调整之前分配的内存块的大小。可以用于扩大或缩小内存块。
ptr = realloc(ptr, 20 * sizeof(int));
free函数: 用于释放之前通过malloc、calloc或realloc分配的内存块。
free(ptr);
以下是一个简单的动态内存分配的例子,演示了如何使用malloc和free来创建和释放动态数组:
#include <stdio.h> #include <stdlib.h> int main() { int n; printf("Enter the number of elements: "); scanf("%d", &n); // 动态分配内存 int *arr = (int *)malloc(n * sizeof(int)); // 检查内存是否成功分配 if (arr == NULL) { printf("Memory allocation failed.\\n"); return 1; // 退出程序 } // 输入数组元素 printf("Enter %d elements:\\n", n); for (int i = 0; i < n; i++) { scanf("%d", &arr[i]); } // 显示数组元素 printf("Elements in the array: "); for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } // 释放动态分配的内存 free(arr); return 0; }
请注意,动态内存分配后,务必使用free函数释放相应的内存,以防止内存泄漏。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:C语言基础教程:宏的使用和多文件编程
- 下一篇:C语言基础教学:文件操作