利用memset和fill_n初始化二维数组
1.C++中利用new函数定义一个二维数组
const int m = 5 ,n=10;
int** a;
a= new int* [m];
for (int i=0; i<m; i++)
a[i]=new int[n];
//delete 创建的空间
for(i=0;i<m;i++)
delete[] a[i];
delete[] a;
C++中利用new创建二维数组,并且使用memset进行初始化。
#include <iostream>
#include <string.h>
int main(void){
int n,m;
while(std::cin >>n >>m)
{
//动态创建二维数组
int **a = new int *[n];
for(int i=0; i<n; ++i)
{
a[i] = new int[m];
//注意下面是第一个参数是a[i]
//第三个参数是 m*sizeof(int)
memset(a[i],0,m*sizeof(int));
}
//这两个大小都是4 int指针的大小
std::cout << sizeof(a) << " " \
<< sizeof(a[0]) << std::endl;
for(int i=0; i<n;