用C语言实现动态内存分配
时间: 2024-01-21 10:40:15 浏览: 87
在 C 语言中,动态内存分配可以通过以下几个函数来实现:
1. malloc():分配指定大小的内存空间,并返回分配的内存地址。
2. calloc():分配指定数量、指定大小的内存空间,并返回分配的内存地址。区别于malloc()的是,calloc()会将分配的内存空间全部初始化为0。
3. realloc():重新分配已分配内存的大小,可以将已分配内存的大小扩大或缩小。
4. free():释放已分配内存的空间,将内存空间还给操作系统。
以下是一个使用 malloc() 函数分配内存的示例:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int *ptr;
int n, i;
printf("Enter number of elements: ");
scanf("%d", &n);
ptr = (int*) malloc(n * sizeof(int));
if (ptr == NULL) {
printf("Memory not allocated.\n");
exit(0);
} else {
printf("Memory allocated successfully.\n");
for (i = 0; i < n; i++) {
printf("Enter element %d: ", i+1);
scanf("%d", &ptr[i]);
}
printf("Elements in the array are: ");
for (i = 0; i < n; i++) {
printf("%d ", ptr[i]);
}
free(ptr);
printf("\nMemory freed successfully.\n");
}
return 0;
}
```
在上面的示例中,我们首先输入要分配的内存空间的大小,然后使用 malloc() 函数分配内存。如果分配成功,我们可以使用分配的内存地址来存储数据。最后,我们使用 free() 函数释放已分配的内存空间。
阅读全文