当前位置: 移动技术网 > IT编程>数据库>MongoDB > Redis 字符串实现:简单动态字符串-SDS与C字符串的区别

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

2020年04月26日  | 移动技术网IT编程  | 我要评论

人造人间奇凯达,qq积分兑换黄钻,2000nba全明星赛

2.1 sds的定义

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

2.2 sds与c字符串的区别

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网