我怎么能简单地初始化一个包含0个元素的多维C数组:
int a[2][2] = { { 0, 0 }, {0, 0} }
答案 0 :(得分:5)
使用memset:
memset(a,0,sizeof a);
答案 1 :(得分:5)
这应该有效:
int a[2][2] = {0};
编辑此技巧可用于消除警告:
int a[2][2] = {{0}};
答案 2 :(得分:0)
memset(a, 0, sizeof(a))
答案 3 :(得分:0)
使用memset()
,或将其设为静态,只将“lazy-initialize”设为零:
static int a[2][2];
始终初始化具有静态存储类的变量,就好像所有字段都设置为0一样。
答案 4 :(得分:0)
使用bzero使其无效(比memset更快):
bzero(a, sizeof(a));
答案 5 :(得分:0)
简单:最后添加分号:
int a[2][2] = { { 0, 0 }, {0, 0} };
并且,如果所有初始值设定项都为零并且数组不是本地的,则可以完全省略初始值设定项,因为0是默认值:
int a[2][2];
人们建议调用memset或bzero,但那些与给出的问题无关。