22-字节设置
9.8.1 字节设置
在一系列的内存操作函数当中,最常用也最简单的是memset():
调用memset(),会把s指向区域开始的前n个字节设置为c,并返回s。该函数经常用来清零一块内存:
bzero()是早期由BSD引入的相同功能的函数,现在已经废弃。新的代码应该使用memset(),但Linux出于向下兼容和对其他系统的可移植性的考虑,也提供了bzero():
下面的调用功能和前面的memset()示例一样:
注意bzero()(其他b开头的函数也是如此)需要的头文件是<strings.h>,而不是<string.h>。
**只要可以使用calloc()分配内存,就坚决不要使用memset()!** 如果要获取一块清零的内存,不要采用这种方式:先用malloc()分配了内存,再马上使用 memset()来进行清零。相反,应该调用calloc()函数,可以一次调用直接返回已经清零了的空间。调用calloc()的好处不仅在于少了一次函数调用,而且calloc()是直接从内存中获取已经清零了的内存,这显然比手工将每个字节清零更高效。