我需要实现bzero,我已经阅读了手册,在StackOverflow上看到了很多关于它的文章,但是我要的是一个简单的示例,其中使用了bzero,但没有找到任何简单的示例使用bzero代替在C中的服务器/客户端中使用它。

好的,这是我的记忆模式:

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);
}


看起来还好吗

最佳答案

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';
}

关于c - 您是否有一个简单的bzero示例?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29182966/

10-11 19:10