zoukankan      html  css  js  c++  java
  • realloc函数实现数组动态增长

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










  • 相关阅读:
    Adobe官方推荐的ActionScript的最佳做法和编码约定
    从Array extends 时要使用 dynamic 关键字
    java本质——内存分布
    函数参数传递
    AS3.0连接FMS2.0
    C#序列化和反序列化代码
    XmlSerializer 对象的Xml序列化和反序列化
    ASP.NET2.0服务器控件之Render方法
    加密技术在企业数据安全中的应用
    IEnumerable IEnumerator 接口
  • 原文地址:https://www.cnblogs.com/ZhangJinkun/p/4531374.html
Copyright © 2011-2022 走看看