如何运用指针动态分配内存
时间: 2024-09-07 16:03:10 浏览: 17
在C语言中,指针可以用来动态地分配内存,这主要涉及两个库函数:`malloc()` 和 `calloc()`。这里简要说明这两个函数的使用:
1. **malloc()**:
- 函数原型:`void *malloc(size_t size)`
- 功能:根据指定的字节数size,分配一块连续的内存区域,并返回这块内存的首地址,如果失败则返回NULL。
- 示例:
```c
int *p = (int*)malloc(sizeof(int)); // 分配一个整数大小的内存
if (p == NULL) {
// 处理内存分配失败的情况
}
*p = 10; // 使用新分配的内存
free(p); // 使用完后记得释放内存
```
2. **calloc()**:
- 函数原型:`void *calloc(size_t num, size_t size)`
- 功能:不仅分配指定数量(num)乘以指定大小(size)的内存,还会清零所有分配的内存,效率稍高一些。
- 示例:
```c
int *p = (int*)calloc(5, sizeof(int));
if (p == NULL) {
// 处理内存分配失败
}
for (int i = 0; i < 5; i++) {
p[i] = i;
}
free(p);
```
使用完动态分配的内存后,别忘了调用`free()`函数释放内存,以防止内存泄漏。注意,动态分配的内存一定要手动释放,因为C语言没有垃圾回收机制。