0

如下截图,Table->column配置size为18时
图片描述
Table->set设置了7个汉字+1个数字,Table->get后如下截图
图片描述
疑问:为什么设置长度是18,实际却能存入超过18呢?

Jansen 1
2019-05-25 提问

查看全部 2 个回答

0

也许这个长度是字符而不是字节呢

感谢韩大大的解答,涨姿势了

推荐答案

1

底层会对长度做内存对齐,大概是8字节。18字节经过对齐处理后,是24字节,也就是可以保存24字节长度的字符串

为啥要内存对齐,这要说到 CPU 架构,目前 Intel/AMDx86/x86-64,即使内存是不对齐的也没关系,而ARM平台,一旦传给CPU未对齐的指针会直接报内存总线错误,然后程序立即崩溃。所以是为了兼容ARM平台。

推广链接