使用malloc和free创建和销毁一维数组和二维数组
1.c语言实现
(1)一维数组:
代码实现:
int *arr=(int *)malloc(sizeof(int )*10);//创建一维数组
free(arr);//释放
测试:
int *arr=(int *)malloc(sizeof(int )*10);
for(int i=0;i<10;i++)
{
arr[i] = i;
printf("%d\n",arr[i]);
}
free(arr);
结果:
(2)二维数组:
代码实现(一种方法):
int **brr=(int **)malloc(sizeof(int *) *5);
for(int i=0;i<5;i++)
{
brr[i] = (int *)malloc(sizeof(int )*4);
}
for(int i=0;i<5;i++)
{
free(brr[i]);
}
free(brr);
测试:
for(int i=0;i<5;i++)
{
for(int j=0;j<4;j++)
{
brr[i][j]=i;
printf("%d ",brr[i][j]);
}
printf("\n");
}
结果:
2.c++实现:
(1)一维数组:
代码实现:
int* parr = new int[10];
delete[]parr;
测试:
int* parr = new int[10];
for(int i=0;i<10;i++)
{
parr[i] = i;
cout << parr[i] << endl;
}
delete[]parr;
结果:
(2)二维数组
代码实现(一种方法0:
int** pbrr = new int* [5];
for (int i = 0; i < 5; i++)
{
pbrr[i] = new int[4];
}
for (int i = 0; i < 5; i++)
{
delete[]pbrr[i];
}
delete []pbrr;
测试:
for(int i=0;i<5;i++)
{
for(int j=0;j<4;j++)
{
pbrr[i][j]=i+j;
cout << pbrr[i][j] << endl;
}
printf("\n");
}
for (int i = 0; i < 5; i++)
{
delete[]pbrr[i];
}
delete []pbrr;
结果: