c语言申请内存
时间: 2023-08-24 10:16:15 浏览: 90
在 C 语言中,申请内存可以使用两个主要的函数:`malloc()` 和 `calloc()`。
`malloc()` 函数用于申请指定字节大小的内存空间,返回一个指向该内存空间的指针。它的函数原型为:
```c
void* malloc(size_t size);
```
其中 `size` 参数表示需要申请的内存空间大小(以字节为单位)。例如,如果需要申请一个大小为 100 字节的内存空间,可以这样写:
```c
int* ptr = (int*) malloc(100);
```
上述代码中,`malloc()` 函数返回一个 `void*` 类型的指针,需要进行类型转换才能得到 `int*` 类型的指针。如果申请成功,`ptr` 指向一个大小为 100 字节的连续内存空间。
`calloc()` 函数也用于申请内存空间,与 `malloc()` 不同的是,它会在申请内存空间的同时将该内存空间中的所有位都初始化为 0。`calloc()` 函数的函数原型为:
```c
void* calloc(size_t num, size_t size);
```
其中 `num` 参数表示需要申请的内存块数,`size` 参数表示每个内存块的大小(以字节为单位)。例如,如果需要申请 10 个大小为 4 字节的内存块,可以这样写:
```c
int* ptr = (int*) calloc(10, sizeof(int));
```
上述代码中,`calloc()` 函数返回一个指向大小为 `10 * sizeof(int)` 字节的内存空间的指针,其中每个 4 字节大小的内存块都被初始化为 0。
无论是使用 `malloc()` 还是 `calloc()`,在使用完申请的内存空间后,需要使用 `free()` 函数将其释放,以便操作系统回收该内存空间。例如,释放上述申请的内存空间,可以这样写:
```c
free(ptr);
```
阅读全文