请问这样的问题怎么解决?
int n;
cin>>n;
int a[n][n];报错?
[解决办法]
数组不能这么定义啊!
[解决办法]
数组中的值,必须在编译之前给给定,但动态数组可以再执行到那一行时给定
[解决办法]
编译器编译阶段还不知道你的n到底是多大,没有办法分配空间,可以动态分配
int n; cin>>n;
// 开辟空间
int **p = (int **)new int[sizeof(int)*n];
for (int i = 0; i != n; ++i)
{
p[i] = new int [n];
}
// 释放空间
for (int i = 0; i != n; ++i)
{
delete []p[i] ;
}
delete []p;
[解决办法]
可以像4楼那样new,我觉得其实用vector更方便。