memset

来源:互联网 发布:南北方饮食差异 知乎 编辑:程序博客网 时间:2024/06/05 17:40

今天写计数排序时

const int oddestAge = 99;
int numofAge[oddestAge + 1];
//初始化各年龄的员工数
memset(numofAge , 0 ,oddestAge + 1 );

本意是想将数组初始化为全0,但经过调试发现最终结果只是将A[0~24]初始化为0,而数组的其他元素的值不确定;

原因:还是自己对memset函数不熟悉,memset是以字节为单位进行填充的,而一个int为4个字节,所有当填充到A[24]时,此时已将容量大小为oddestAge + 1的字节填充为0,之后的数组超出其最大容量值,必然发正确填充,在C++环境中产生随机值。

0 0