微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

realloc()函数的作用/目的是什么?

realloc()函数用于调整分配的内存块的大小。 它有两个参数,第一个是指向先前分配的内存的指针,第二个是新请求的大小。
realloc()函数首先释放旧对象,然后重新分配新指定的大小。 如果新大小小于旧大小,则新分配内存的内容将与先前相同,但如果新创建的对象中的任何字节超出旧大小,则超出大小的值将是不确定的。

语法:

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

示例代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main ()
{
    char *pcBuffer = NULL;
    /* Initial memory allocation */
    pcBuffer = malloc(8);
    if(pcBuffer == NULL)
    {
        return 0;
    }
    strcpy(pcBuffer, yii);
    printf(\npcBuffer = %s\n, pcBuffer);
    /* Reallocating memory */
    pcBuffer = realloc(pcBuffer, 15);
    strcat(pcBuffer, bai.com);
    printf(pcBuffer = %s\n, pcBuffer);
    //free the allocated memory
    free(pcBuffer);
    return 0;
}

输出结果为:

pcBuffer = yii
pcBuffer = jb51.cc.com

注意:它应该用于动态分配的内存,但如果指针是空指针,realloc 的行为类似于 malloc 函数。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐