realloc的故事

来源:互联网 发布:java filereader 读取 编辑:程序博客网 时间:2024/05/29 03:17

动态申请内存,是我们经常用的事情,我们最常用的可能最多的是malloc函数,可是避免不了申请内存不够的时候来用用realloc。

realloc它就是一枚后悔药,当你后悔的时候可以来一枚,要到病除,可是他用的不好会有后遗症。

让我们来看看这个后遗症:

首先realloc有两个参数一个是原值针,一个是要重新开辟的内存大小,看起来很好用。好的那我们直接realloc(p,10)就行了?这就开辟十个字节,可以直接用指针p啦?

早都说了有后遗症,其实realloc并不是像你想象的那样,他并不是在源地址上紧接着把原来字节数改变成现在定义的,而是另外开辟一块内存,把原来字节的东西复制过去,然后free(原来指针),还要注意一个坑,就是realloc返回还是void类型指针还需要类型转换,下面举个例子

p=(int *)realloc(p,10);

0 0
原创粉丝点击