博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
realloc函数实现数组动态增长
阅读量:4992 次
发布时间:2019-06-12

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

realloc函数实现数组动态增长<?xml version="1.0" encoding="UTF-8"?>
realloc函数有两种机制:
#include
<stdio.h>
#include
<stdlib.h>
int
main(){
       
       
int
*p = (
int
*)calloc(10,
sizeof
(
int
)); 
       printf(
"%p"
,p);
       
for
(
int
i = 0; i < 10; i++)
       {
              *(p + i) = i;
       }
       
       p = (
int
*)realloc(p,60);
// 在原来的内存后面补增60个字节
       
for
(
int
i = 10; i < 25; i++)
       {
              *(p + i) = i;
       }
       system(
"pause"
);
       
return
0;
}
1. 直接在原来的内存后面补接内存(在内存足够时)
261827503371095.png
2.当原内存后面的内存不足的时候,就重新找到一块内存,将原内存中的数据复制过去,原内存清空
#include
<stdio.h>
#include
<stdlib.h>
int
main(){
       
     
  
int
*p = (
int
*)calloc(10,
sizeof
(
int
));
//堆上分配内存,返回内存地址
       printf(
"%p\n"
,p);
       
for
(
int
i = 0; i < 10; i++)
       {
              *(p + i) = i;
       }
       
       p = (
int
*)realloc(p,10000);
//在原来的内存后面补增60个字节
       printf(
"%p"
, p);
       
for
(
int
i = 10; i < 10000; i++)
       {
              *(p + i) = i;
       }
       system(
"pause"
);
       
return
0;
}
261827509625452.png
261827515718337.png
261827524628710.png
261827535719681.png

转载于:https://www.cnblogs.com/ZhangJinkun/p/4531374.html

你可能感兴趣的文章
Linux学习第六篇之文件处理命令ln(链接命令)
查看>>
thinkphp5 tp5 七牛云 上传图片
查看>>
VM下Linux网卡丢失(pcnet32 device eth0 does not seem to be ...)解决方案
查看>>
第一阶段意见汇总以及改进
查看>>
再说virtual
查看>>
随笔:技术流可以这样写博客
查看>>
[优化]JavaScript 格式化带有占位符字符串
查看>>
打JAR包
查看>>
大图轮播
查看>>
UNIX环境高级编程读书笔记
查看>>
java awt 乱码问题
查看>>
矩阵中的路径
查看>>
unity回调函数范例
查看>>
linux下给php安装curl、gd(ubuntu)
查看>>
Java自带的Logger使用-代码摘要
查看>>
Java设计模式系列 — 构造器模式
查看>>
MySQL执行计划explain的key_len解析
查看>>
Windows Phone开发(9):关于页面状态 转:http://blog.csdn.net/tcjiaan/article/details/7292160...
查看>>
android 通过数组,流播放声音的方法
查看>>
Spring入门篇
查看>>