2015-12-05 68 views
0

比方说,我初始化这样的数组:ç重新初始化数组

array[] = {1, 42, 32, 16, 89}; 

如果:

char array[] = {0, 0, 0, 0, 0}; 

然后,我通过这样的它看起来像这样结尾写一些数据,它修改阵列我想重新初始化相同的数组回到零,所以我可以再次使用同一个数组,这样做是否正确:

memset(array, 0, 5); 

谢谢

回答

4

是的,但memset(array, 0, sizeof(array));会更好,如果您将大小更改为例如,您不需要跟踪数组的大小。 6日后。

+0

第三个参数必须是'sizeof(array)'。这就是当sizeof array [0]大于1的情况(例如,如果有'int array []')。 'memset'获取字节数。 – nnn

+0

@nnn你说的是对的,马虎。 –

+0

只需添加:memset除了'char'数组之外还要小心。如果设置为“0”以外,则更多。这可能因为'memset'在'char []'上工作,并且没有关于数组实际类型的概念。 – Olaf

2

[...]这样做是否正确?