1. 程式人生 > >malloc動態分配陣列以及指標陣列大小

malloc動態分配陣列以及指標陣列大小

對於二維陣列:一般來說,當給兩個數分別表示行列,但兩個數的範圍過大,就需要動態分配。

int i,j,m,n;
	scanf("%d%d",&m,&n);
	int **a;
	a=(int**)malloc(sizeof(int*)*m);
	for(i=0;i<m;++i)
	a[i]=(int *)malloc(sizeof(int)*n);

之後完全可以把a看做二維陣列名稱而用a[][]來做題。


對於指標陣列

int n,i,j;
	char *s[15];
	scanf("%d",&n);
	getchar();
	for(i=0;i<n;++i)
	{
		gets(a);
		s[i]=(char*)malloc(sizeof(char)*(strlen(a)+1));
		strcpy(s[i],a);
	}

注意對於字串陣列,strlen+1, (malloc後面的是位元組數,別忘了還有'\0'.)

通常用於存字串。