#include <malloc.h>


//ReDimArray 函数可以对int char double 进行创建动态数组(保留其原有的值);

//记住结束的时候记得释放创建的内存空间!
//int 动态数组 保留数组以前的信息


//释放使用 calloc 或者malloc 创建的内存空间的空间

int* ReDimArray(int a[],int n,int j)   //n为初始大小   j 为改变后的大小
{
int* k=0;
k=(int *)malloc(j*sizeof(int));
       if(j>n)
    {
     for(int nj=0;nj<j;nj++)
     {  
       if (nj<=n-1)
       {k[nj]=a[nj];}
       else
       {k[nj]=0;}
     }
    }
     else
{
     for(int nk=0;nk<j;nk++)
     {
      k[nk]=a[nk];
     }
}
return k;
}

//char性 动态数组 保留数组以前的信息
char* ReDimArray(char a[],int n,int j)   //n为初始大小   j 为改变后的大小
{
char* k=0;
k=(char *)malloc(j*sizeof(char));
       if(j>n)
    {
     for(int nj=0;nj<j;nj++)
     {  
       if (nj<=n-1)
       {k[nj]=a[nj];}
       else
       {k[nj]=0;}
     }
    }
     else
{
     for(int nk=0;nk<j;nk++)
     {
      k[nk]=a[nk];
     }
}
return k;
}

//char性 动态数组 保留数组以前的信息
double* ReDimArray(double a[],int n,int j)   //n为初始大小   j 为改变后的大小
{
double* k=0;
k=(double *)malloc(j*sizeof(double));
       if(j>n)
    {
     for(int nj=0;nj<j;nj++)
     {  
       if (nj<=n-1)
       {k[nj]=a[nj];}
       else
       {k[nj]=0;}
     }
    }
     else
{
     for(int nk=0;nk<j;nk++)
     {
      k[nk]=a[nk];
     }
}
return k;
}c语言中实现动态数组!(自己包的,共大家思考)

posted on 2011-04-23 22:15  阿 & 文  阅读(376)  评论(0编辑  收藏  举报