注意1 :memset是以字节为单位对内存赋值。
请看以下两个例子。
因为例1的数组是字符型的,字符型占据内存大小是1Byte,而memset函数也是以字节为单位进行赋值的,所以你输出没有问题。而例2的数组是整型的,使用memset还是按字节赋值,这样赋值完以后,每个数组元素的值实际上是0x01010101即十进制的16843009
注意2:memset()虽然方便,但是非常耗费CPU。因此服务器端程序还是慎用为妙。
当又要追求速度,又要不占用CPU时,可以根据需要采取首位或所需最后位补0的方法。
(当然,你需要控制好长度问题)
以下三个例子来说明初始化速度。
例子1用了普通的循环赋值(耗时3078ms左右)。
例子2用了memset方法(耗时828ms左右)。
例子3则是采用了在数组末端补0来控制字符串长度(耗时16ms左右)。
BCB6.0下编译通过。