码迷,mamicode.com
首页 > 编程语言 > 详细

realloc函数实现数组动态增长

时间:2015-05-26 20:51:53      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:

realloc函数实现数组动态增长
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. 直接在原来的内存后面补接内存(在内存足够时)

技术分享

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;
}

技术分享


技术分享


技术分享

技术分享




realloc函数实现数组动态增长

标签:

原文地址:http://www.cnblogs.com/ZhangJinkun/p/4531374.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!