C++ 二维数组如何初始化为0

如下,定义10X8的二维A
int **A=new int*[10];
for(int l=0;l<10;l++)
A[l]=new int[8];
怎样初始化A的全部元素为0?谢谢
一楼的方法我也知道,不过有没有简单的?
还有二楼C++不是不允许直接定义int A[5][3]这样么?你这个似乎是C里的吧

例如
int a[3][4];
a[0][0]='0'
这样写第一个元素初始化为0,其余也会初始化为0

还有一种就是
memset(要初始化的数组,初始化的值,要初始化的长度(字节));
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-02


参考程序:

#include <iostream> 
using namespace std; 

int main() 

int i,j; 
int * * a=new int *[10]; 
for(i=0;i<10;i++) 
a[i]=new int[8]; 
for(i=0;i<10;i++) 

for(j=0;j<8;j++) 

*(a[i]+j)=0; 
cout<<*(a[i]+j)<<" "; 

cout<<endl; 

return 0; 
}


C++ 也可以写: 
int a[10][8];
简单的就是 :memset(a,0,sizeof(a));

第2个回答  2008-08-17
for(int l=0;l<10;l++)
{
A[l]=new int[8];
memset(A[l],0,sizeof(A[l])*8);
}
原理如楼上所述,不赘述~~

C++当然可以直接定义多维数组了,
是C#不可以直接定义多维数组。
第3个回答  推荐于2017-10-10
#include <iostream>
using namespace std;

int main()
{
int i,j;
int * * a=new int *[10];
for(i=0;i<10;i++)
a[i]=new int[8];
for(i=0;i<10;i++)
{
for(j=0;j<8;j++)
{
*(a[i]+j)=0;
cout<<*(a[i]+j)<<" ";
}
cout<<endl;
}
return 0;
}
参考程序

C++ 也可以写
int a[10][8];
简单的就是 :memset(a,0,sizeof(a));本回答被提问者采纳
第4个回答  推荐于2018-03-07
补充一下用memset函数要在开头加上 #include <string.h>
还有new了后面要delete本回答被网友采纳
相似回答