您现在的位置:首页 --> 查看专题: vla
VLA (可变长度数组) 是 C 语言在 C99 之后加入的一个很方便的语言特性,但是 MSVC 已经明确不支持 VLA 了。而且 Linux 的内核代码中曾经使用过 VLA ,而现在已经移除了 VLA 。看起来,VLA 带来的安全问题比它的便利性要多。
但是,日常用 C 语言做开发时,经常还是需要变长数组的。既然直接用 C 语言的 VLA 有诸多问题,那么还是需要额外实现一个比较好。C 没有 C++ 那样的模板支持,一般的通用 VLA 实现很难做到类型安全。即使用 C++ ,STL 中的 vector ,这个最常用的 VLA 实现,也不总是切合应用场景的。比如,std::vector 它的数据一般还是分配在堆上,而不是栈上。相比原生创建在栈上的数组,它可能性能有影响且有可能制造更多的堆内存碎片。
[ 共1篇文章 ][ 第1页/共1页 ][ 1 ]
近3天十大热文
- [754] WEB系统需要关注的一些点
- [123] 如何拿下简短的域名
- [22] 移动音乐产品梳理
- [16] 豆瓣是啥?
- [14] 内存的惰性初始化
- [14] Chrome开发者工具的小技巧
- [12] 产品经理的取舍之道与抽象能力
- [12] iOS和Android设计规范备忘表
- [11] 这些反人类设计,你肯定也碰到过
- [11] 为什么工程师会造出蹩脚的产品
赞助商广告