阅读量:141
C语言中实现动态数组的方法主要有以下几种:
- 使用指针:通过定义一个指针变量,动态分配内存空间,并通过指针访问数组元素。可以使用malloc()函数动态分配内存空间,使用free()函数释放内存空间。
示例代码:
int* arr;
int size;
printf("请输入数组大小:");
scanf("%d", &size);
arr = (int*)malloc(sizeof(int) * size); // 动态分配内存空间
if (arr == NULL) {
printf("内存分配失败\n");
return 0;
}
// 使用arr指针访问数组元素
for (int i = 0; i < size xss=removed>
- 使用realloc()函数:在原有的动态内存空间基础上,重新分配内存空间,可以扩展或缩小数组大小。
示例代码:
int* arr;
int size;
printf("请输入数组大小:");
scanf("%d", &size);
arr = (int*)malloc(sizeof(int) * size); // 动态分配内存空间
if (arr == NULL) {
printf("内存分配失败\n");
return 0;
}
// 使用arr指针访问数组元素
for (int i = 0; i < size xss=removed xss=removed xss=removed xss=removed xss=removed xss=removed>
- 使用结构体:通过定义一个包含指针和数组大小的结构体,动态分配内存空间,并通过指针访问数组元素。
示例代码:
typedef struct {
int* arr;
int size;
} DynamicArray;
DynamicArray createArray(int size) {
DynamicArray dynamicArray;
dynamicArray.arr = (int*)malloc(sizeof(int) * size); // 动态分配内存空间
dynamicArray.size = size;
return dynamicArray;
}
void freeArray(DynamicArray dynamicArray) {
free(dynamicArray.arr); // 释放内存空间
}
int main() {
int size;
printf("请输入数组大小:");
scanf("%d", &size);
DynamicArray dynamicArray = createArray(size);
// 使用dynamicArray.arr指针访问数组元素
for (int i = 0; i < dynamicArray xss=removed>
以上是实现动态数组的几种方法,具体使用哪种方法可以根据实际需求和个人喜好选择。