您现在的位置:首页 --> 查看专题: 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天十大热文
-
[1281] WordPress插件开发 -- 在插件使用 -
[124] IOS安全–浅谈关于IOS加固的几种方法 -
[30] 关于IO的同步,异步,阻塞,非阻塞 -
[29] IP团伙行为分析(更新中文版报告) -
[27] iTerm2 (Mac Terminal) -
[27] 页面停留时间和网站停留时间详解 -
[26] Rax 系列教程(长列表) -
[25] 解决Ubuntu播放器快进问题 -
[24] 过年回家有感:他们的互联网 -
[24] 微博架构与平台安全演讲稿
赞助商广告