文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>动态数组定义

动态数组定义

时间:2010-08-22  来源:hisky1983

定义一维数组

int *p = ( int* )malloc( n * sizeof( int ) );

 

离散动态数组的定义

int **p = (int**)malloc(m*sizeof(int *));

for (int i=0;i<m;i++){

    p[i] = (int*)malloc(n*sizeof(int));

}

 

p只是保存了每个一维数组的首地址,这样的存储区是不连续的。释放离散动态数组:

for( int i=0;i<m;i++){

  free(p[i]);

}

 

free(p);

 

连续动态数组定义:

int *p=(int*)malloc(m*n*sizeof(int));

int **q=(int**)malloc(m*sizeof(int*));

for(int i=0;i<m;i++){

   q[i] = p+i*n;

}

首先分配连续的m*n的存储空间,然后q指向中间地址,相当于每一维德开始地址。

释放空间的时候直接释放p、q就可以了

free(q);

free(p);

 

连续的空间是支持空间扩展了,比如m*n数组扩展为k*j

int *p=(int *)realloc(k*j*sizeof(int));

int **q =(int**)realloc(k*sizeof(int*));

for(int i=0;i<k;i++){

  q[i]=p+i*j;

}

 

 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载