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