博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
动态分配内存-realloc
阅读量:5079 次
发布时间:2019-06-12

本文共 875 字,大约阅读时间需要 2 分钟。

动态分配内存---relloc

关于 malloc 就不多说了,现在看看 realloc:

函数声明: void *realloc(void *ptr, size_t size);

功能:动态改变指针指向的内存块的大小。

使用:如果 ptr 指针是空指针,该函数的作用同 malloc;

           如果 size 的大小小于之前 malloc或 realloc 分配的大小,那么原来内存块的数据会丢失,只保留现有数据;

           如果 size 的大小大于之前 malloc或 realloc 分配的大小,那么将会分配一块新的大小的内存块。

           新的内存块将会复制原来内存块的数据,原来的内存块会被释放。

DemoCode:

#include
#include
int main(void){ int a,*p; int i=0,j=0; char b; p = (int *)malloc(sizeof(int)); printf("原来指针指向地址:%p\n",p); while(1) { scanf("%d%c",&a,&b); p[i] = a; if(b != '\n') { i++,j=i; p = (int *)realloc(p,sizeof(int)*(i+1)); } else break; } printf("新指针指向地址:%p\n",p); for(i=0;i<=j;i++) printf("%d\t",p[i]); printf("\n"); free(p); return 0;}

这样就可以根据需要来使用内存了。

转载于:https://www.cnblogs.com/M-Anonymous/p/9671171.html

你可能感兴趣的文章
redis集群如何清理前缀相同的key
查看>>
Python 集合(Set)、字典(Dictionary)
查看>>
获取元素
查看>>
proxy写监听方法,实现响应式
查看>>
第一阶段冲刺06
查看>>
十个免费的 Web 压力测试工具
查看>>
EOS生产区块:解析插件producer_plugin
查看>>
mysql重置密码
查看>>
jQuery轮 播的封装
查看>>
一天一道算法题--5.30---递归
查看>>
JS取得绝对路径
查看>>
排球积分程序(三)——模型类的设计
查看>>
python numpy sum函数用法
查看>>
php变量什么情况下加大括号{}
查看>>
linux程序设计---序
查看>>
【字符串入门专题1】hdu3613 【一个悲伤的exkmp】
查看>>
C# Linq获取两个List或数组的差集交集
查看>>
HDU 4635 Strongly connected
查看>>
ASP.NET/C#获取文章中图片的地址
查看>>
Spring MVC 入门(二)
查看>>