我需要实现bzero
,我已经阅读了手册,我在StackOverflow上看到了很多关于它的帖子,但我要求的是一个简单的例子,你使用bzero ,我没有找到使用bzero
的任何简单示例,而不是在C中的服务器/客户端中使用它。
好的,这是我的memset:
void *my_memset(void *b, int c, size_t len)
{
char *pb;
unsigned char car;
if (b == NULL)
return (NULL);
pb = b;
car = (unsigned char)c;
while (len--)
{
*pb++ = car;
}
return (b);
}
void ft_bzero(void *s, size_t n)
{
ft_memset(s, 0, n);
}
看起来不错?
答案 0 :(得分:0)
所有bzero()
所做的就是将所有内容都归零。
myStruct_t * foo = malloc (sizeof(myStruct_t));
bzero(foo, sizeof(myStruct_t));
// All bytes of foo are now 0
与调用
没什么区别memset (foo, 0, sizeof(myStruct_t));
在幕后,bzero()
应与此实施相匹配......
void bzero(void * s, size_t n)
{
char * c = s; // Can't work with void *s directly.
size_t i;
for (i = 0; i < n; ++i)
c[i] = '\0';
}
答案 1 :(得分:0)
最简单的例子:
char *test = malloc(256);
memset(test, 0, 256); // or bzero(test, 256);
这会将test
的所有元素设置为零。