二维数组new和delete如何用
二维数组new和delete怎么用
char **str;
int **p;
求教以上2个二维数组的new和delete标准写法.
------解决方案--------------------
二维数组话,需要知道中元素的个数
比如是char str[10][20];
char** str=new char*[10]
delete[] str;
int **p=new int*[10];
delete[] p;
------解决方案--------------------
示例给你一个:
#include <iostream>
using namespace std;
#define ROW 4
#define COL 6
int main()
{
int row = ROW;
int col = COL;
int i,j,n=1;
int **b = new int*[row];//分配一个指针数组,并将其首地址保存在b中
for(i=0;i<row;i++)
b[i] = new int[col]; //为指针数组的每个元素分配一个数组
for(i=0;i<row;i++) //赋值
for(j=0;j<col;j++)
b[i][j]=n++;
for(i=0;i<row;i++) //输出
{
for(j=0;j<col;j++)
cout << b[i][j] << " ";
cout << endl;
}
for(i=0;i<row;i++) //释放
{
delete[] b[i]; //释放为指针数组的每个元素分配一个数组
b[i]=NULL; //将其指针设为空
}
delete[] b; //释放指针数组
b =NULL;
return 0;
}
char **str;
int **p;
求教以上2个二维数组的new和delete标准写法.
------解决方案--------------------
二维数组话,需要知道中元素的个数
比如是char str[10][20];
char** str=new char*[10]
delete[] str;
int **p=new int*[10];
delete[] p;
------解决方案--------------------
示例给你一个:
#include <iostream>
using namespace std;
#define ROW 4
#define COL 6
int main()
{
int row = ROW;
int col = COL;
int i,j,n=1;
int **b = new int*[row];//分配一个指针数组,并将其首地址保存在b中
for(i=0;i<row;i++)
b[i] = new int[col]; //为指针数组的每个元素分配一个数组
for(i=0;i<row;i++) //赋值
for(j=0;j<col;j++)
b[i][j]=n++;
for(i=0;i<row;i++) //输出
{
for(j=0;j<col;j++)
cout << b[i][j] << " ";
cout << endl;
}
for(i=0;i<row;i++) //释放
{
delete[] b[i]; //释放为指针数组的每个元素分配一个数组
b[i]=NULL; //将其指针设为空
}
delete[] b; //释放指针数组
b =NULL;
return 0;
}