一维动态数组
#include<stdio.h>
#include<stdlib.h>
int main(){
int n,i;
int *arr = NULL;
printf("请输入所要创建的一维动态数组的长度:");
scanf("%d",&n);
if((arr=(int *)malloc(n*sizeof(int)))==NULL) {
printf("分配内存空间失败,程序退出!");
return 0;
}
for(i=0;i<n;i++){ /*向申请成功的数组中赋值*/
arr[i]=i+1;
printf("%d\t",arr[i]);
if(0==(i+1)%4)
printf("\n"); /*一行打印四个元素*/
}
if(arr != NULL){
free(arr); /*切记!使用完后记得要释放所申请的空间*/
}
return 0;
}
二维动态数组
#include<stdio.h>
#include<stdlib.h>
int main(){
int n1,n2,i,j;
int **arr = NULL;
printf("请输入所要创建的动态数组的第一维长度:");
scanf("%d",&n1);
printf("请输入所要创建的动态数组的第二维长度:");
scanf("%d",&n2);
if((arr=(int **)malloc(n1*sizeof(int *)))==NULL){ /*第一维的创建*/
printf("分配内存空间失败,程序退出!");
return 0;
}
for(i=0;i<n1;i++){ /*创建第二维*/
if((arr[i]=(int *)malloc(n2*sizeof(int)))==NULL){
printf("分配内存空间失败,程序退出!");
return 0;
}
}
for(i=0;i<n1;i++){
for(j=0;j<n2;j++){
arr[i][j]=i*n2+j+1; /*为申请成功的数组中赋值*/
printf("%d\t",arr[i][j]);
}
printf("\n");
}
for(i=0;i<n1;i++){
free(arr[i]); /*先释放第二维*/
}
free(arr); /*最后释放第一维*/
return 0;
}
网友评论