gcc中的可变延长阵列
Variable lengthed array in gcc
我是开始C 程序员。因此,我刚刚了解到,GCC具有一个扩展名,可以将大小的数组变化而无需动态分配内存。我想知道这个大小的数组是在堆栈还是堆中分配。
概念上是用自动存储持续时间分配的,因此在实现方面,您可以将其 think 作为堆栈。
确实考虑使用std::vector
作为替代方案,因为这是标准的,因此可以使用CC 。
变量大小数组分配在堆栈中。
vla不受C 标准的支持,尽管某些编译器(例如GCC)确实将其作为扩展名。
std :: vector<> vla在GCC实施中。
- std :: vector是可以解决的,并且可以在堆上分配内存。
- vla无法解析,受到最大堆栈大小的限制,并且不分配内存。
因此存在灵活性差异,并且可能存在性能差异,尤其是在定期发生阵列的情况下(例如在紧密的环中)。
也就
相关文章:
- OpenMP阵列性能较差
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 奇怪的结构&GCC&clang(void*返回类型)
- GCC本机矩阵运算库
- PowerPC ppc64le上的Gcc Woverloaded虚拟错误
- gcc和c++17的过载解析失败
- 数据成员SFINAE的C++17测试:gcc vs clang
- 如何将三维尺寸不固定的三维阵列展平为一维阵列
- GCC对可能有效的代码抛出init list生存期警告
- 如何解决gcc编译器优化导致的centos双编译器设置中的分段错误
- 当我的阵列太大时出现分段错误
- 使用 GCC 卸载的 OpenMP 卸载失败,并出现"Ptx assembly aborted due to errors"
- 为什么与常规GCC不同,即使有"学究性错误",MinGW-GCC也能容忍丢失的返回类型
- 使用gcc从静态链接的文件中查找可选符号
- 普通环路未使用gcc 4.8.5自动矢量化
- 有了gcc,是否可以链接库,但前提是它存在
- 在clang++预处理器中确定gcc工具链版本
- 为什么 gcc 编译这个而 msvc 没有
- 为什么lambda在clang上崩溃而不是在gcc上崩溃
- gcc中的可变延长阵列