在c++中时不能像java中一样定义这样的数组 int[] arr = new int[],如果我们要根据程序的运行来实现动态数组在c++中利用指针这个好东东。
动态一维数组:
#include
using namespace std;
int main()
{
int len;
cin>>len;
int *p=new int[len];
delete[] p;
p = NULL;
return 0;
}
动态二维数组:
int main()
{
int row, col;
cout << "Please enter the number for row and column: " << endl;
cin >> row >>col;
//为二维数组开辟空间
int **p = new int*[row];
for (int i = 0; i < row; i++)
{
p[i] = new int[col];
}
for (int j = 0;j < row; j++)
{
for (int k = 0; k < col; k++)
{
p[j][k] = (j + 1) * (k + 1);
cout << p[j][k] << &p[j][k];
}
cout< }
//释放二维数组占用的空间
for (int m = 0; m < row; m++)
{
delete[] p[m];
}
delete[] p;
p = NULL;
return 0;
}
当然要利用指针也可以实现多维数组,但是这是应该利用STL中的vector更简单。
在c++中时不能像java中一样定义这样的数组 int[] arr = new int[],如果我们要根据程序的运行来实现动态数组在c++中利用指针这个好东东。
动态一维数组:
#include
using namespace std;
int main()
{
int len;
cin>>len;
int *p=new int[len];
delete[] p;
p = NULL;
return 0;
}
动态二维数组:
int main()
{
int row, col;
cout << "Please enter the number for row and column: " << endl;
cin >> row >>col;
//为二维数组开辟空间
int **p = new int*[row];
for (int i = 0; i < row; i++)
{
p[i] = new int[col];
}
for (int j = 0;j < row; j++)
{
for (int k = 0; k < col; k++)
{
p[j][k] = (j + 1) * (k + 1);
cout << p[j][k] << &p[j][k];
}
cout< }
//释放二维数组占用的空间
for (int m = 0; m < row; m++)
{
delete[] p[m];
}
delete[] p;
p = NULL;
return 0;
}
当然要利用指针也可以实现多维数组,但是这是应该利用STL中的vector更简单。
阅读(1568) | 评论(0) | 转发(0) |