c 创建动态一维数组
时间: 2024-12-29 07:31:35 浏览: 10
在C语言中,创建动态一维数组通常需要使用`malloc()`函数来分配内存空间。这是因为C语言的标准库没有提供直接创建动态数组的语法,你需要手动管理内存。下面是一个简单的示例:
```c
#include <stdlib.h> // 包含malloc()函数
// 定义数组的类型和初始大小
typedef struct {
int* array; // 数组指针
size_t size; // 当前数组长度
} DynamicArray;
// 动态初始化数组
DynamicArray* createIntArray(size_t initialSize) {
DynamicArray* arr = (DynamicArray*)malloc(sizeof(DynamicArray));
if (arr != NULL) {
arr->array = (int*)malloc(initialSize * sizeof(int)); // 分配内存
if (arr->array == NULL) {
free(arr); // 如果分配失败,释放已分配的内存
arr = NULL;
} else {
arr->size = initialSize;
}
} else {
printf("Memory allocation failed.\n");
}
return arr;
}
// 使用数组时记得处理内存释放
void destroyArray(DynamicArray* arr) {
if (arr && arr->array) { // 确保不是NULL
free(arr->array);
free(arr);
}
}
int main() {
DynamicArray* myArray = createIntArray(5); // 创建一个包含5个元素的数组
// ... 对数组的操作
destroyArray(myArray); // 使用完后释放内存
return 0;
}
```
在这个例子中,我们首先声明了一个结构体`DynamicArray`来存储动态数组的信息。`createIntArray()`函数负责分配内存并返回指向数组的指针,而`destroyArray()`用于释放之前动态分配的内存。
阅读全文