Memset 定义和使用

新手上路,请多包涵

函数 memset() 有什么用处?

定义:将 ptr 指向的内存块的前 num 字节设置为指定值(解释为无符号字符)。

这是否意味着它对内存地址中的值进行硬编码?

memset(&serv_addr,0,sizeof(serv_addr) 是我试图理解的例子。

有人可以用非常简单的方式解释吗?

原文由 Brandon Ling 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 861
2 个回答

memset() 是一个非常快的版本,操作相对简单:

 void* memset(void* b, int c, size_t len) {
    char* p = (char*)b;
    for (size_t i = 0; i != len; ++i) {
        p[i] = c;
    }
    return b;
}

也就是说, memset(b, c, l)l 字节从地址 b 设置为值 c .它只是比上面的实现快得多。

原文由 Dietmar Kühl 发布,翻译遵循 CC BY-SA 3.0 许可协议

memset- 设置内存中的字节数

概要-

 #include<string.h>

void *memset(void *s,int c,size_t n)

描述 - memset() 函数应将 c(转换为无符号字符)复制到 s 指向的对象的前 n 个字节中的每个字节中。 这里对于上述函数,memset() 应返回 s 值。

原文由 Ashit 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题