malloc 实现_c++语言程序设计

malloc 实现_c++语言程序设计malloc,calloc,realloc的使用方法和注意事项一,我们先来介绍一下今天的第一个函数malloc:​参数:无符号整形。返回值:void*的指针,内存开创成功后返回的是内存的起始地址,如果失败,返回NULL;功能就是开辟指定大小的内存空间,但是不对

malloc,calloc,realloc的使用方法和注意事项   一,我们先来介绍一下今天的第一个函数malloc:   ​
malloc 实现_c++语言程序设计
malloc 实现_c++语言程序设计   参数:无符号整形。   返回值:void*的指针,内存开创成功后返回的是内存的起始地址,如果失败,返回NULL;   功能就是开辟指定大小的内存空间,但是不对该内存进行初始化,保留的是不确定的值。   我们在使用该函数的时候要注意对malloc之后的返回值进行强制类型转换,以便达到我们的使用目的。   接下来我们以一个例子来使用一下malloc   无论在使用那个动态内存函数开辟的空间,大家在最后使用之后一定要注意用free()释放,释放时使用的时内存的首地址,所以我上面使用了p来进行赋值操作,但是这有点繁琐了,使用一个指针也是能完成上面的要求的,下面说代码的优化:   二,calloc函数:   同样我们还是先来看一下这个函数的返回值和参数以及功能有哪些   ​
malloc 实现_c++语言程序设计
malloc 实现_c++语言程序设计   参数:num是开辟的字节大小,size是开辟的个数。   返回值:void*类型,开辟内存成功也是返回首地址,失败返回NULL;   与malloc不同的是,calloc会对开辟的内存进行一个初始化的操作,初始化全为0。   ​
malloc 实现_c++语言程序设计
malloc 实现_c++语言程序设计   ​用例:   calloc相比于malloc更加灵活了一些!,区别就是calloc会对内存初始化为0,而malloc不会。   三,realloc函数:   reaclloc函数可以更改指定内存块的大小   ​
malloc 实现_c++语言程序设计
malloc 实现_c++语言程序设计   参数:ptr指向的内存块,size无符号整形   返回值:更改成功返回有两种可能性:   1,返回值原有的地址,2,返回新的地址   为什么会有这两种情况呢?原因是,当更改的内存和原有的内存是连续的话,更改完之后内存快的地址没有发生改变,返回的就是原地址。如下图:(减小原内存快空间的话返回的肯定是原地址)   ​
malloc 实现_c++语言程序设计
malloc 实现_c++语言程序设计   并不是所有时刻更改的内存都是连续的,那么当更改的内存并不连续的时候realloc会新开辟一块大的空间,并将原数据拷贝到新开辟的内存快中,并返回新的内存地址!并将原内存块释放掉(自动释放)如下图:   ​
malloc 实现_c++语言程序设计
malloc 实现_c++语言程序设计   注意,新分配出来的空间也是不进行初始化的!   如果更改不成功的话,返回NULL;   下面我们对第一例代码进行改造,让得能放下10个数据。   运行结果:   ​
malloc 实现_c++语言程序设计
malloc 实现_c++语言程序设计

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/45595.html

(0)
上一篇 2024年 9月 5日 下午4:02
下一篇 2024年 9月 5日 下午4:06

相关推荐

关注微信