C 中的动态数组 - realloc

c++

1个回答

写回答

jsksknsh

2025-07-09 18:40

+ 关注

AI
AI

动态数组是在程序运行时可以改变大小的数组。在C语言中,我们可以使用realloc函数来重新分配动态数组的内存空间。本文将介绍realloc函数的用途、使用方法以及一个简单的案例代码。

realloc函数的用途

realloc函数的主要用途是重新分配动态数组的内存空间。当我们需要在程序运行时改变数组的大小时,可以使用realloc函数来实现。它可以增加或减少数组的大小,并且会将原有的数据复制到新的内存空间中。

realloc函数的使用方法

在C语言中,我们需要包含头文件来使用realloc函数。它的原型如下:

c

void *realloc(void *ptr, size_t size);

其中,ptr是指向之前动态分配的内存空间的指针,size是新的内存空间大小。realloc函数将返回一个指向重新分配内存空间的指针,如果分配失败,则返回NULL。

为了使用realloc函数,我们需要遵循以下几个步骤:

1. 定义一个指针变量,用于存储动态数组的地址。

2. 使用malloc函数来为动态数组分配初始的内存空间。

3. 使用realloc函数重新分配内存空间,并将返回的指针赋值给指针变量。

4. 检查realloc函数的返回值,如果为NULL,则表示内存分配失败。

5. 使用指针变量来操作动态数组。

案例代码

下面是一个简单的案例代码,演示了如何使用realloc函数来改变动态数组的大小:

c

#include <stdio.h>

#include <stdlib.h>

int mAIn() {

int *arr;

// 初始分配内存空间

arr = (int*) malloc(5 * sizeof(int));

if (arr == NULL) {

printf("内存分配失败\n");

return 0;

}

// 打印初始数组

printf("初始数组:\n");

for (int i = 0; i < 5; i++) {</p> arr[i] = i + 1;

printf("%d ", arr[i]);

}

printf("\n");

// 增加数组大小

arr = (int*) realloc(arr, 10 * sizeof(int));

if (arr == NULL) {

printf("内存分配失败\n");

return 0;

}

// 打印扩展后的数组

printf("扩展后的数组:\n");

for (int i = 0; i < 10; i++) {</p> arr[i] = i + 1;

printf("%d ", arr[i]);

}

printf("\n");

// 释放内存空间

free(arr);

return 0;

}

在上述代码中,我们首先使用malloc函数为动态数组分配了一个初始的内存空间,大小为5个整数。然后,我们使用realloc函数将数组的大小增加到10个整数。最后,我们通过循环打印出了扩展后的数组。

通过这个简单的案例代码,我们可以清楚地了解realloc函数的使用方法以及动态数组的概念。在实际编程中,我们可以根据需要使用realloc函数来动态地改变数组的大小,从而提高程序的灵活性和效率。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号