大宇私人领地伊甸园丨宁愿做了后悔,也不要错过后悔[www.mrdayu.com]
注册

24小时联系邮箱:[email protected]

所有文章
大宇私人伊甸园: 首页 > 所有文章 > 编程人生 > C/C++语言 > C标准库详解 > realloc()函数详解


友情链接:


realloc()函数详解

发布时间:2018/11/22 C标准库详解 标签realloc()阅读:40

函数功能:

改变mem_address所指内存区域的大小为newsize长度。

函数原型:

extern void *realloc(void *mem_address, unsigned int newsize);

头文件包含:

#include <alloc.h>

返回值:

如果重新分配成功则返回指向被分配内存的指针,否则返回空指针NULL。

当内存不再使用时,应使用free()函数将内存块释放。

Linux平台测试:

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(){
        char *p=(char *)malloc(10);
        if(p){
        //      p="helloworld";
                memcpy(p,"helloword",sizeof("helloword"));
                printf("SIZE=%d\t%s\n",sizeof(p),p);
        }else{
                printf("error for malloc");
                return 0;
        }
        char *  p2=realloc(p,100);
        if(p2){
                p2="hello world longlonglonglonglonglonglong...";
                printf("SIZEOF=%d\t%s\n",sizeof(p2),p2);
        }else{
                printf("error for realloc");
        }
        return 1;
}

测试结果:

[[email protected] STDC]$ gcc stdc_realloc.c 
[[email protected] STDC]$ ./a.out 
SIZE=8	helloword
SIZEOF=8	hello world longlonglonglonglonglonglong...

Windows平台测试:

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(){
	char *p = (char *)malloc(10);
	if (p){
		//      p="helloworld";
		memcpy(p, "helloword", sizeof("helloword"));
		printf("SIZE=%d\t%s\n", sizeof(p), p);
	}
	else{
		printf("error for malloc");
		return 0;
	}
	char *  p2 = realloc(p, 100);
	if (p2){
		p2 = "hello world longlonglonglonglonglonglong...";
		printf("SIZEOF=%d\t%s\n", sizeof(p2), p2);
	}
	else{
		printf("error for realloc");
	}
	getchar();
	return 1;
}

结果显示:

SIZE=4  helloword
SIZEOF=4        hello world longlonglonglonglonglonglong...
The bottom line, for me, is simple.

Let’s hope it doesn’t take 500 years for a discipline of testing to becomes the standard for software developers.

From:dayu

您好!请登录

合作网站快捷登录:
点击取消回复

已有0评论

    大宇博客

    点击这里给我发消息 点击这里给我发消息 点击这里给我发消息 点击这里给我发消息