//创建长度为3的一维数组
double* arr=new double[3];
//初始化可以使用方法1也可以使用方法2
//初始化方法1
memset(arr,0,sizeof(arr));
//初始化方法2
for(int i=0; i<3; i++)
arr[i]=0.0;
//录入数据
for(int i=0; i<3; i++)
scanf("%lf",&arr[i]);
//打印数据
for(int i=0; i<3; i++)
printf("%.1f\t",arr[i]);
//释放内存
arr=nullptr;
delete[] arr;
//创建3行4列二维数组
double **arr=new double*[3];
for (int i=0; i<3; i++)
arr[i] = new double[4];
//memset函数的初始化只能对一维数组,对于每一行,是连续分配的
//对于二维数组各行之间,却不是连续非配的,容易出错
//初始化二维数组
for(int i=0; i<3; i++)
for(int j=0; j<4; j++)
arr[i][j]=0.0;
//录入各行各列数据
for(int i=0; i<3; i++)
for(int j=0; j<4; j++)
scanf("%lf",&arr[i][j]);
//打印二维数组
for(int i=0; i<3; i++)
{
for(int j=0; j<4; j++)
printf("%.1f\t",arr[i][j]);
printf("\n");
}
//释放内存
for (int i=0; i<3; i++)
delete[] arr[i];
arr=nullptr;
delete[] arr;
一维指针数组和二维指针数组的创建和内存释放
最新推荐文章于 2022-11-02 16:46:48 发布