redis字符串底层实现原理_c怎么将字符串存入数组

redis字符串底层实现原理_c怎么将字符串存入数组2.1 SDS的定义 struct { //buf中已使用的字节数,等于SDS所保存字符串的长度 int len; //buf中未使用的字节长度 int free; //字节数组,用于保存字符串 ch

Redis 字符串实现:简单动态字符串-SDS与C字符串的区别

2.1 SDS的定义

struct {
    //buf中已使用的字节数,等于SDS所保存字符串的长度
    int len;
    //buf中未使用的字节长度
    int free;
    //字节数组,用于保存字符串
    char[] buf;
}

代码100分

2.2 SDS与C字符串的区别

C字符串 SDS
获取字符串长度的复杂度为 O(N) 获取字符串长度的复杂度为O(1)
API不安全,可能造成缓冲区溢出 API安全,杜绝了缓冲区溢出
修改字符串长度N次必然需要N次内存重分配 修改字符串长度N次最多发生N次内存重分配
只能保存文本 二进制安全,可以保存文本和二进制数据
可以使用所有<string.h>中的函数 兼容部分C字符串函数,可使用部分<string.h>中的函数

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/8804.html

(0)
上一篇 2023-02-21 18:00
下一篇 2023-02-21

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注