您的位置:首页 > 编程语言 > C语言/C++

C++动态创建二维数组,memset()初始化二维数组

2017-08-23 14:14 309 查看
果然很麻烦,人生苦短,还是用python吧。

#include <iostream>
#include <string.h>

int main(void){
int n,m;
while(std::cin >>n >>m)
{
//动态创建二维数组
int **a = new int *
;
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; ++i)
{
for(int j=0; j<m; j++)
std::cout << a[i][j] << " ";
std::cout << std::endl;
}

//用完之后,记得释放内存 !!!!!
for(int i=0; i<n; ++i)
delete []a[i];
delete []a;
}
return 0;
}


#include <iostream>

int main(void)
{
int a[10];
int *b = new int[10];
std::cout << "sizeof(a) = " << sizeof(a) << \
"\nsizeof(b) = " << sizeof(b) << std::endl;
return 0;
}


sizeof(a) = 40

sizeof(b) = 4

请按任意键继续…
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息