c语言实现动态数组的方法是什么

avatar
作者
猴君
阅读量:1

C语言中实现动态数组的方法主要有以下几种:

  1. 使用指针:通过定义一个指针变量,动态分配内存空间,并通过指针访问数组元素。可以使用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; i++) {     arr[i] = i + 1; } // 释放内存空间 free(arr); 
  1. 使用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; i++) {     arr[i] = i + 1; } // 重新分配内存空间 size += 5; // 扩展数组大小 arr = (int*)realloc(arr, sizeof(int) * size); if (arr == NULL) {     printf("内存分配失败\n");     return 0; } // 使用arr指针访问扩展后的数组元素 for (int i = 0; i < size; i++) {     arr[i] = i + 1; } // 释放内存空间 free(arr); 
  1. 使用结构体:通过定义一个包含指针和数组大小的结构体,动态分配内存空间,并通过指针访问数组元素。

示例代码:

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.size; i++) {         dynamicArray.arr[i] = i + 1;     }     freeArray(dynamicArray);     return 0; } 

以上是实现动态数组的几种方法,具体使用哪种方法可以根据实际需求和个人喜好选择。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!