如何使用c++中的cstring packgae函数来设置数组的内存



我想使用cstring类的memset函数为整个数组分配一个数字。但它只适用于0,如果我为函数memset提供任何其他值,它会随机为数组的内存分配一个大整数no。

memset(arr,0,sizeof(arr));

为此,它可以很好地工作,数组i中的每个插槽分配0值;但是如果我做这个

memset(arr,1 or any other no,sizeof(arr));

为此,它向数组的每个槽分配一个随机的较大整数值;请解释为什么会这样。

我想你想要std::fill

CCD_ 2是一个基元函数。它在内存中设置字节,而不是值。二进制中的值2570x0101。这向您展示了发生的情况:两个字节都设置为0x01

由于要将值设置为0x0001,因此显然不可能使用std::memset进行设置,因为它将所有内容都设置为相同的字节值。std::fill理解类型,并会转换您给它的值。因此,在填充浮点数组时,它可以将1转换为1.0f