在函数中使用realloc()函数可以重新分配内存空间,并访问这些值。realloc()函数用于重新分配之前通过malloc()或calloc()函数分配的内存块的大小。它接受两个参数:指向之前分配的内存块的指针和新的大小。
使用realloc()函数的步骤如下:
以下是一个示例代码,演示如何在函数中使用realloc()函数并访问这些值:
#include <stdio.h>
#include <stdlib.h>
void resizeArray(int** arr, int newSize) {
*arr = realloc(*arr, newSize * sizeof(int));
if (*arr == NULL) {
printf("内存重新分配失败");
return;
}
// 访问和操作重新分配的内存块中的值
for (int i = 0; i < newSize; i++) {
(*arr)[i] = i + 1;
}
}
int main() {
int* array = malloc(5 * sizeof(int));
if (array == NULL) {
printf("内存分配失败");
return 1;
}
// 访问和操作初始分配的内存块中的值
for (int i = 0; i < 5; i++) {
array[i] = i;
}
// 调整数组大小并访问新的值
resizeArray(&array, 10);
// 打印新的数组值
for (int i = 0; i < 10; i++) {
printf("%d ", array[i]);
}
// 释放内存
free(array);
return 0;
}
在这个示例中,首先使用malloc()函数分配了一个大小为5的整数数组,并将其地址存储在指针变量array中。然后,在resizeArray()函数中,使用realloc()函数将数组的大小调整为10。最后,通过循环打印新的数组值,并在程序结束时释放内存。
请注意,realloc()函数可能会将内存块移动到新的位置,因此在重新分配内存后,之前的指针可能会失效。因此,在重新分配内存后,需要使用返回的新指针来访问和操作值。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云