1)静态数组
int array2[3][2]={{4,2},{5},{6}};
- 静态分配的内存在栈里(释放静态分配的数组内存,由系统自动完成)
- 1.1 程序进入函数时建栈,栈里存放函数用到的参数、局部变量等信息,
- 1.2 函数执行完,出栈销毁栈。
2)动态数组,行列不确定由 m、n定义
int **array2=new int*[m];
for(int i=0;i<m;i++)
array2[i]=new int[n];
以上初始化完成,后续赋值及使用 例:
array2[1][0]=1 ;
int t=array2[1][0];
释放二维数组
for (int i = 0; i < m;i++)
{
delete[]array2[i];
}
delete[]array2;
- 动态分配的内存(new)在堆上,系统没法自动去释放堆上的内存,
- 需要用free或者delete来告诉操作系统,去释放堆上指定位置的内存。