当前位置:网站首页>C陷阱与缺陷 第7章 可移植性缺陷 7.10 首先释放,然后重新分配
C陷阱与缺陷 第7章 可移植性缺陷 7.10 首先释放,然后重新分配
2022-08-01 21:00:00 【weixin_客子光阴】
首先释放,然后重新分配
C语言实现都为使用人员提供了3个内存分配函数:malloc、realloc和free。malloc(n)将返回一个指针,指向一块新分配的可以容纳n的字符的内存,编程人员可以使用这块内存。free将释放malloc分配的内存,方式是通过把malloc函数返回的指针作为参数传递给free函数。realloc需要把指向一块内存已分配内存的区域指针以及这块内存新的大小作为参数传入,就可以调整(扩大或缩小)这块内存区域为新的大小,这个过程中有可能涉及内存的复制。
内存重分配(reallocation)
这一实现允许某内存块被释放之后重新分配其大小,前提是内存重分配(reallocation)操作执行得必须足够早。(UNIX)
例如,下面的代码就是合法的:
free(p);
p = realloc(p, newsize);
释放一个链表中的所有元素:
for (p = head; p != NULL; p = p->next) {
free((char *)p)
}
这里,我们不必担心调用free之后,会使p->next变得无效当着,这种技巧不值得推荐。(有可能在其它系统上失败)
边栏推荐
- 虚拟机的IP地址自动变为127.0.0.1
- [译] 容器和 Kubernetes 中的退出码完整指南
- STAHL touch screen repair all-in-one display screen ET-316-TX-TFT common faults
- The Internet giant development process
- 织梦通过数据库查询调用当前文章的留言
- tiup mirror clone
- idea插件generateAllSetMethod一键生成set/get方法以及bean对象转换
- "No title"
- 微服务负载均衡器Ribbon
- Interpretation of the meaning of each dimension of two-dimensional, three-dimensional, and four-dimensional matrices
猜你喜欢
算法---解码方法(Kotlin)
2022年秋招,软件测试开发最全面试攻略,吃透16个技术栈
有点奇怪!访问目的网址,主机能容器却不行
进行交互或动画时如何选择Visibility, Display, and Opacity
响应式织梦模板清洁服务类网站
Where should I prepare for the PMP exam in September?
Interview Blitz 70: What are sticky packs and half packs?How to deal with it?
Buttons with good user experience should not have hover state on mobile phones
Which websites are commonly used for patent searches?
数据库内核面试中我不会的问题(1)
随机推荐
Failed to re-init queues : Illegal queue capacity setting (abs-capacity=0.6) > (abs-maximum-capacity
【Kaggle】Classify Leaves
C专家编程 第1章 C:穿越时空的迷雾 1.4 K&R C
Pytorch学习记录(八):生成对抗网络GAN
Pytorch框架学习记录13——利用GPU训练
关于Request复用的那点破事儿。研究明白了,给你汇报一下。
用户身份标识与账号体系实践
Pytorch框架学习记录12——完整的模型训练套路
任务调度线程池基本介绍
[Multi-task model] Progressive Layered Extraction: A Novel Multi-Task Learning Model for Personalized (RecSys'20)
微信小程序云开发|个人博客小程序
Where should I prepare for the PMP exam in September?
有点奇怪!访问目的网址,主机能容器却不行
Pytorch框架学习记录8——最大池化的使用
myid file is missing
案例:MySQL主从复制与读写分离
tiup mirror clone
R语言 线性回归的有关方法
98.嵌入式控制器EC实战 EC开发板开发完成
idea插件generateAllSetMethod一键生成set/get方法以及bean对象转换