C语言如何动态分配数组?
时间: 2024-10-16 18:11:05 浏览: 24
c语言实现动态数组代码
在C语言中,动态分配数组通常使用标准库函数`malloc()`来完成,因为数组的大小在程序运行时可能会发生变化。以下是动态分配单维数组的基本步骤:
1. 包含头文件:`#include <stdlib.h>`,`malloc()`函数来自这个头文件。
2. 使用`malloc()`:函数原型为`void *malloc(size_t size)`,你需要提供想要分配的字节数。例如,`int *array = (int*) malloc(sizeof(int) * num_elements);`
这里,`sizeof(int)`获取int类型的字节大小,`num_elements`是你想要的数组长度。
3. 检查分配结果:如果`malloc()`成功,会返回非NULL的指针;失败则返回NULL。记得检查返回值是否为NULL,避免野指针的问题。
4. 初始化并使用:如果分配成功,你可以用数组的方式访问和修改元素,比如`array[0]`。
5. 释放内存:当不再需要数组时,使用`free(array)`释放先前分配的内存,防止内存泄漏。
```c
int *dynamic_array;
size_t array_size = 10; // 或者从用户输入或其他途径获取
dynamic_array = (int*) malloc(array_size * sizeof(int));
if (dynamic_array == NULL) {
printf("Memory allocation failed.\n");
} else {
// 使用数组...
free(dynamic_array);
}
```
阅读全文