当前位置:网站首页>Dynamic memory management
Dynamic memory management
2022-07-07 05:42:00 【hhy20020202】
Common memory development :
frequently-used int、long、char Type and output open up space , The size of the open space is fixed .
int a;// The space opened in the stack space is four bytes
char a;// The space opened in the stack space is one byte
short a;// The space opened in the stack space is two bytes
long a;// The space opened up in the stack space is eight bytes
int arr[10]={0};// Open up on the stack space 40 A contiguous space of bytes
Dynamic memory exploit function :
malloc function :void* malloc(size_t size);
malloc The basic function is to apply for continuous available space from memory , And return a pointer to this deficient space .
If the development is successful , The thief returns a pointer to the opened space .
If the development fails , Then return a null pointer , So it's using malloc Functions are generally used if Function determines the return value of the function .
int *p=(int *)malloc(40);// Open up for 10 An integer space
// Because the return type is void*, So the specific type should be set by yourself
if(p==NULL)
{
printf("%s\n",strerror(errno));
return 0;
}
free function :void free(void *ptr);
free The function is used to release dynamically opened memory space .
calloc function :void *calloc(site_t num,size_t size);
calloc The function function is to num Size is size The elements of open up a space , And initialize each byte of the space to 0.
int *p=(int *)calloc(10,sizeof(int));// open up 10 A space of integer size
int *p=(int *)malcoc(40);// open up 10 A space of integer size
malloc Function and calloc Function also opens up 40 Bytes of space , But the difference between the two functions is calloc The opened space will initialize each byte to 0.
So if there are requirements for the initial value of the open space , In general use malloc function , Define the initial value of space by yourself , Not too many requirements can be used calloc Function to open up space .
realloc function :void* realloc(void * ptr,size_t size);
realloc The function adjusts the memory size .
and realloc There may be two situations during capacity increase and adjustment :
1. After the original space, there is enough space to increase capacity .
2. There is not enough space to increase the capacity after the original space .
Appearance 1 when , Capacity expansion will not lead to changes in the original spatial data , And the situation 2, In case of capacity increase, find another large enough continuous space on the heap space to use , So the return value of the function is a new memory space .
When something happens 2 when , If you directly assign the increased space to the original space , Return when capacity increase fails NULL The pointer , The original data will be lost , So it's using realloc The function is to verify whether the augmented space is a null pointer , I'm doing an assignment .
边栏推荐
- Life experience of an update statement
- 判断文件是否为DICOM文件
- How digitalization affects workflow automation
- SAP webservice 测试出现404 Not found Service cannot be reached
- C nullable type
- The navigation bar changes colors according to the route
- Design, configuration and points for attention of network unicast (one server, multiple clients) simulation using OPNET
- Introduction to distributed transactions
- 消息队列:消息积压如何处理?
- 《HarmonyOS实战—入门到开发,浅析原子化服务》
猜你喜欢
毕业之后才知道的——知网查重原理以及降重举例
ForkJoin最全详解(从原理设计到使用图解)
导航栏根据路由变换颜色
Leetcode: maximum number of "balloons"
5. Data access - entityframework integration
What is dependency injection (DI)
Common skills and understanding of SQL optimization
Intelligent annotation scheme of entity recognition based on hugging Face Pre training model: generate doccano request JSON format
论文阅读【Semantic Tag Augmented XlanV Model for Video Captioning】
Two person game based on bevy game engine and FPGA
随机推荐
分布式全局ID生成方案
[paper reading] semi supervised left atrium segmentation with mutual consistency training
删除文件时提示‘源文件名长度大于系统支持的长度’无法删除解决办法
Paper reading [open book video captioning with retrieve copy generate network]
The navigation bar changes colors according to the route
JSP setting header information export to excel
Leetcode 1189 maximum number of "balloons" [map] the leetcode road of heroding
Hcip eighth operation
论文阅读【MM21 Pre-training for Video Understanding Challenge:Video Captioning with Pretraining Techniqu】
Writing process of the first paper
CentOS 7.9 installing Oracle 21C Adventures
zabbix_get测试数据库失败
Hcip seventh operation
What is message queuing?
Design, configuration and points for attention of network unicast (one server, multiple clients) simulation using OPNET
Dj-zbs2 leakage relay
Paper reading [MM21 pre training for video understanding challenge:video captioning with pre training techniqu]
Preliminary practice of niuke.com (9)
说一说MVCC多版本并发控制器?
判断文件是否为DICOM文件