C||malloc calloc realloc区分

it2026-02-18  5

malloc calloc realloc区分

相同点:

1.都是C标准库提供动态内存申请的库函数

2.返回值类型都是void* ,因此在使用的时候必须强转

3.申请空间成功,返回空间的首地址,失败返回NULL,因此在使用时必须进行判空

4.申请的空间都在堆上,使用完成后必须要使用free进行释放,否则会存在内存泄漏

不同:

malloc:参数申请空间大小的字节数,直接将空间申请成功返回给用户

calloc:有两个参数1表示元素个数 2表示元素类型

将申请好的空间全部初始化为0

realloc:将ptr所指向的空间调整为size个字节

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

1.ptr==NULL realloc相当于malloc

2.ptr!=NULL realloc将空间调整到size个大小的空间(然后返回首地址空间)

最新回复(0)