问题标签 [variable-length-array]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1305 浏览

c - 我应该信任哪个编译器?

这将是一个新手问题,但我试图用C语言(不是C++)进行一个小练习,但遇到了一些问题。

假设我想在一个大小取决于参数之一的方法中使用一个数组:

当我尝试在Visual Studio 2013.c中将其编译为文件时,我收到一条错误消息,指出不允许使用非常量数组大小。然而,相同的代码在GNU 编译器下的CodeBlocks中工作。我应该相信哪个?编译器的行为如此不同是正常的吗?我一直认为,如果您正在做编译器不喜欢的事情,那么您一开始就不应该这样做,因为它不是标准。

任何输入都是有用的!我来自Python的背景,我正在尝试更多地参与使用数据结构和算法进行编程。

我的平台是 Windows,你可能知道。如果这个问题需要更多信息才能回答,请告诉我。

0 投票
6 回答
3781 浏览

c++ - malloc的优点是什么?

为某些数据分配内存有什么好处。相反,我们可以使用它们的数组。

喜欢

我们可以使用一个普通的数组。

好吧,我不明白 malloc 是如何工作的,实际上是什么。所以解释它们对我来说会更有益。

假设我们sizeof(int) * n只替换n上面的代码,然后尝试存储整数值,我可能会遇到什么问题?有没有办法直接从内存分配的空间打印存储在变量中的值,例如这里是lis

0 投票
2 回答
1357 浏览

c++ - 如何使程序声明可变数量的不定大小数组

这听起来可能很疯狂,但我想知道是否可以让程序在使用 C/C++ 的循环中声明n该类型的数组的数量。array[]例如,示例以下伪代码:

所以这里的问题有两个方面:
- 声明可变长度数组
- 声明一个可变数量(即n个)这样的数组。

0 投票
2 回答
898 浏览

c - GCC 允许以可变长度初始化数组

GCC编译如下函数

我的印象是您只能初始化具有恒定长度的数组。这应该编译吗,它会做我期望的吗?

0 投票
1 回答
257 浏览

shell - Shell 脚本 - 如何创建具有特定长度的变量?

我是 shell 脚本的新手,我需要这方面的帮助。

如何创建由变量字符串分隔的输出文件?我的意思是,每个变量都有一个特定的长度,例如:

输出文件将是这样的(每个数字都与相应变量的内容相关):

next 变量的内容从文件中的下一个位置开始,即variable2从第 11 位开始,因为variable1在第 10 位结束。变量中的剩余空间将被空格填充。

0 投票
3 回答
356 浏览

c - 运行时确定的数组大小

我看到一些这样的代码:

我对这将如何工作甚至使用gcc. 数组的大小应该是静态的并在编译时确定,不是吗?

0 投票
3 回答
24767 浏览

c++ - 变长 std::array 像

由于我通常使用的 C++ 编译器允许可变长度数组(例如,取决于运行时大小的数组),我想知道是否有类似std::array可变大小的东西?当然std::vector是可变大小的,但它在堆上分配,并在需要时重新分配。

我喜欢在运行时定义大小的堆栈分配数组。是否有任何std可能具有此功能的模板?也许使用std::vector固定的最大尺寸?

0 投票
2 回答
9093 浏览

c - GCC 如何实现变长数组?

GCC 如何实现变长数组(VLA)?这样的数组是否本质上是指向动态分配存储的指针,例如由 alloca 返回的?

我能想到的另一种选择是,将这样的数组分配为函数中的最后一个变量,以便在编译时知道变量的偏移量。但是,第二个 VLA 的偏移量将在编译时再次未知。

0 投票
1 回答
1578 浏览

c++ - Does "int size = 10;" yield a constant expression?

The following code compiles under gcc 4.8 and Clang 3.2:

8.3.4/1 of the C++ Standard says that the size of an array must be an integral constant expression, which size does not seem to be. Is this a bug in both compilers, or am I missing something?

The latest VC++ CTP rejects the code with this interesting message:

The interesting part is how it seems to think that size is zero. But at least it rejects the code. Shouldn't gcc and Clang do the same?

0 投票
2 回答
410 浏览

matlab - 创建可变长度数据集的图例+忽略空单元格

我正在尝试绘制一些跨越 2 年的月度统计数据,其中 1 年只有一个月的数据,而另一年有 11 个月的数据。我遇到麻烦的地方是图例标签,当我填写标签时,它需要第一年的一个月数据,并放在下一年的标签后面,就好像它正在填写那个月一样。这就是我的意思:

其中 13 是 2013 年的 2 位数字表示,12 是 2012 年的数字表示。即使我按顺序循环这些年,它也会这样做。我相信这是因为 2012 年的 Legendms 基本上是空的单元格,除了 12 月,所以它只是填补了这个空间。它也没有遵循适当的线条样式。当 12 月 12 日应该是不同的线型时,它将 1 月 13 日标记为与其他线型不同的线型“-”。有谁知道解决这个问题的方法,或者如何在保留完整图例标签的同时忽略空单元格?

这是我到目前为止的代码,也许我只是犯了一个简单的错误?任何帮助将不胜感激!

重申一下,我希望图例忽略任何年份的空单元格,并使用适当的颜色和车站标签按年份顺序绘制图例标签。2012 年的值应该是实线,2013 年的值应该是虚线,无论颜色代表它们描述的月份(lineColors)。