您现在的位置:首页 --> 查看专题: 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天十大热文
- [51] WEB系统需要关注的一些点
- [48] Oracle MTS模式下 进程地址与会话信
- [48] Go Reflect 性能
- [46] IOS安全–浅谈关于IOS加固的几种方法
- [45] android 开发入门
- [45] find命令的一点注意事项
- [45] Twitter/微博客的学习摘要
- [44] 【社会化设计】自我(self)部分――欢迎区
- [44] 图书馆的世界纪录
- [43] 关于恐惧的自白
赞助商广告