用malloc分配动态二维数组

假设我需要一个nrows、 ncolumns数组,则可以用以下几种方法动态分配空间:


1. 动态数组的成员都可以用正常的数组下标 Array[i][j]

 

#include #include void main() { int nrows,ncolumns; int **Array; int i,j; printf("please input nrows&ncolumns:/n"); scanf("%d%d",&nrows,&ncolumns); Array=(int **)malloc(nrows*sizeof(int *)); for(i=0;i


2. 让数组的内容连续, 但在后来重新分配列的时候会比较困难, 得使用一点指针算术:

 

#include #include void main() { int nrows,ncolumns; int **Array; int i,j; printf("please input nrows&ncolumns:/n"); scanf("%d%d",&nrows,&ncolumns); Array=(int **)malloc(nrows*sizeof(int *)); Array[0]=(int *)malloc(nrows*ncolumns*sizeof(int)); for(i=1;i


3. 同一个单独的动态分配的一维数组来模拟二维数组:

 

#include #include void main() { int nrows,ncolumns; int *Array; int i,j; printf("please input nrows&ncolumns:/n"); scanf("%d%d",&nrows,&ncolumns); Array=(int *)malloc(nrows*ncolumns*sizeof(int *)); for(i=0;i


你可能感兴趣的:(算法笔记)