使用ZeroMemory初始化数组

时间:2016-12-19 18:57:35

标签: c++ visual-studio-2015

char cMsg [128] [12];

是这样的:

ZeroMemory(cMsg, sizeof(cMsg));

比这个?

for(i=0;i<128;i++)
    ZeroMemory(cMsh[i], sizeof(cMsg[i]))

编译器在两种方式下都没有错误,但它们是否符合相同的目标?

2 个答案:

答案 0 :(得分:5)

char数组的行为是相同的,因为它们没有对齐要求或中间的填充字节。第一种方法可能比第二种方式快一些,因为它使用较少的函数调用,加速度太小而无法在现代硬件上可靠地测量,最终结果将是相同的。 / p>

答案 1 :(得分:4)

ZeroMemory将一块内存归零,并且数组是连续的。

因此,将“整块”中的整个块清零而不是一次性归零在功能上是相同的。