C++中动态分配二维数组的方法(zz)
#include
<
cstdlib
>
#include
<
iostream
>
#include
<
cstring
>

using
namespace
std;

int
main(
int
argc,
char
*
argv[])

...
{
int N;
while(cin>>N)

...{
// 方案一
int array[N][N]; // 你用的是vc6吧,它不支持动态数组!
memset(array, 0, sizeof(array));
// 方案二
int (*array)[N] = (int(*)[N])new int[N*N]; //动态分配二维数组
memset(array, 0, sizeof(int)*N*N);

// 方案三
int **array = new int*[N];

for (int i=0;i<N;i++) ...{ // vc6也不支持重复定义循环变量i!
// 后面再出现同样的循环变量i,就会出错!
array[i] = new int[N];
memset(array[i], 0, sizeof(int)*N);
}

int n=1;
for(int m=0;m<N;m++)
for(int i=m,j=0;i>=0&&j<=m;i--,j++)
array[i][j]=n++;
for(int i=0;i<N;i++)

...{
for(int j=0;j<N;j++)
if(array[i][j]==0)
break;
else
cout<<array[i][j]<<" ";
}
//释放部分你就自己写了...
}
system("PAUSE");
return EXIT_SUCCESS;
}














































