c语言动态内存分配格式
时间: 2024-11-12 09:16:34 浏览: 5
在C语言中,动态内存分配通常通过`malloc()`、`calloc()`、`realloc()`和`free()`函数来完成。以下是基本的格式:
1. `void *malloc(size_t size)`:动态地分配指定大小的内存块。返回的是一个指向新分配空间的指针,如果分配失败则返回`NULL`。
- 示例:
```c
int *p = (int*) malloc(sizeof(int));
```
2. `void *calloc(size_t n_elements, size_t element_size)`:分配一块内存,其中所有元素都初始化为0。返回的是一个指向新分配空间的指针。
- 示例:
```c
int *p = (int*) calloc(5, sizeof(int));
```
3. `void *realloc(void *ptr, size_t new_size)`:改变已分配内存的大小。若成功,返回新的地址;若失败,返回`NULL`。
- 示例:
```c
p = realloc(p, sizeof(double)); // 如果之前分配的是整型,现在改为分配双精度类型的空间
```
4. `void free(void *ptr)`:释放先前由`malloc()`、`calloc()`或`realloc()`分配的内存。如果`ptr`为`NULL`,则忽略操作。
- 示例释放:
```c
free(p); // 当不再需要使用动态分配的内存时,记得释放
```
记得,在使用完动态内存后,一定要记得调用`free()`来释放内存,以防止内存泄漏。
阅读全文