目录
2.void* calloc(size_t num, size_t size);
3.void* realloc(void* ptr, size_t size);
介绍
在 C 语言中,malloc
、calloc
、realloc
和 free
是用于动态内存分配和管理的标准库函数。它们定义在 <stdlib.h>
头文件中。
1.void* malloc(size_t size);
size
: 要分配的字节数。
malloc
函数用于分配指定字节数的内存块,并返回指向该内存块的指针。分配的内存内容是未初始化的。回一个 void*
指针,指向分配的内存块。如果分配失败,返回 NULL
。
2.void* calloc(size_t num, size_t size);
num
: 要分配的对象数量,size
: 每个对象的字节数。
calloc
函数用于分配一块内存,用于存储指定数量的对象,每个对象的大小为指定字节数。分配的内存块会被初始化为零。返回一个 void*
指针,指向分配的内存块。如果分配失败,返回 NULL。
3.
void* realloc(void* ptr, size_t size);
ptr
: 指向已分配内存块的指针,size
: 新的内存块大小(以字节为单位)
realloc
函数用于重新调整已分配内存块的大小。如果需要增加或减少内存块的大小,realloc
可以用来改变内存块的大小,保留原有数据(如果有的话)。返回一个 void*
指针,指向新分配的内存块。如果分配失败,返回 NULL
,并且原内存块未被修改。
4.void free(void* ptr);
ptr
: 指向要释放的内存块的指针。
free
函数用于释放先前由 malloc
、calloc
或 realloc
分配的内存块。释放内存块后,该内存块变为不可用,且无法再次访问无返回值。
5.代码演示
#include<bits/stdc++.h>
using namespace std;
int main()
{
int* ssr=(int *)malloc(40);//分配40个字节的空间
int* sr=(int *)calloc(5,sizeof(int));//分配5个int(4个字节)所占空间,并都赋值为0
int* r=(int*)realloc(ssr,30);//修改ssr所指向的空间并修改大小为30个字节,并返回新的内存地址给r
ssr=r;
free(ssr);//释放空间
free(sr);
return 0;
}
标签:malloc,int,realloc,void,free,内存,分配,size
From: https://blog.csdn.net/song0789/article/details/141196529