Unicode字符集一个字符占用16个字符,malloc动态分配内存至少分配16个字符。当要分配的内存增加到与原来至少限度长度差值少于12个字节时,动态分配的内存才增加(为什么要有12个字节的差值,这个策略还不清楚)。并且以8个字节的倍数增加,这是由于系统内存管理决定的,这也是出于对系统操作和运行速度的考虑。
本文探讨了在Window7操作系统和VC++9.0编译环境下,使用Unicode字符集进行字符串内存动态分配时的有趣现象。通过对不同大小的内存分配及strlen函数返回值的观察,揭示了内存分配的增长模式及其背后的原因。
Unicode字符集一个字符占用16个字符,malloc动态分配内存至少分配16个字符。当要分配的内存增加到与原来至少限度长度差值少于12个字节时,动态分配的内存才增加(为什么要有12个字节的差值,这个策略还不清楚)。并且以8个字节的倍数增加,这是由于系统内存管理决定的,这也是出于对系统操作和运行速度的考虑。

被折叠的 条评论
为什么被折叠?