在 C 语言中,realloc 函数用于重新分配内存块的大小

2025-05-17ASPCMS社区 - fjmyhfvclm

在 C 语言中,realloc 函数用于重新分配内存块的大小。它可以用来扩大或缩小之前通过 malloc、calloc 或 realloc 分配的内存块。realloc 是一个非常有用的函数,因为它允许程序在运行时动态调整内存分配的大小。

realloc 函数的语法

c

void *realloc(void *ptr, size_t

ptr:指向之前分配的内存块的指针。如果 ptr 是 NULL,realloc 的行为类似于 malloc。

size:新的内存块的大小(以字节为单位)。

realloc 的行为

扩大内存块:如果新的大小大于旧的大小,realloc 会尝试扩展当前内存块。如果当前内存块之后没有足够的空间来扩展,realloc 会在堆中寻找一个新的足够大的内存块,并将旧内存块的内容复制到新内存块中。旧内存块会被释放。

缩小内存块:如果新的大小小于旧的大小,realloc 会截断当前内存块,多余的部分会被丢弃。

失败情况:如果 realloc 无法分配请求的内存,它会返回 NULL,并且原始的内存块保持不变。

使用示例

c

#include <stdio.h>

#include <stdlib.h>

int main() {

int *ptr;

int n = 5;

// 分配 n 个整数的内存空间

ptr = (int *)malloc(n * sizeof(int));

if (ptr == NULL) {

printf("Memory allocation failed.\n");

return 1;

}

// 初始化分配的内存

for (int

全部评论