使用0个元素初始化多维C数组

时间:2011-02-08 15:42:01

标签: c arrays initialization

我怎么能简单地初始化一个包含0个元素的多维C数组:

int a[2][2] = { { 0, 0 }, {0, 0} }

6 个答案:

答案 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,但那些与给出的问题无关。