memset的问题

在别人的程序里看到了这个:

    int table[128];
    memset(table,-1,sizeof(table));

这段代码实际上非常tricky, memset设置的是每一个byte, 但是把每一个byte设为-1, 也即是把int数组全设为了-1. 我想问这个是某种约定俗成的技巧么?

阅读 4.1k
3 个回答

int(-1)就是0xFFFFFFFF,这段代码把这个数组里的每个bit都置成了1,至于他到底要干什么……你就贴这两行代码我怎么知道……

如果要把数组初始化成-1,为什么不能这样写?初始化成0我也可以用memset啊。这并没有什么问题啊,当然如果你要把一个int型数组初始化成1还用memset那就呵呵了。

只能算是技巧,不能说是约定俗成的吧。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进