问题标签 [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 投票
3 回答
186 浏览

c - gcc 下 VLA 的可用内存

由于 malloc 返回 NULL,有没有办法使用 VLA 检测堆栈上的内存不足?

0 投票
2 回答
13530 浏览

c++ - C++这个数组的静态分配和动态分配有什么区别?

对比

每当您尝试静态分配大小不恒定的数组时,我都被告知编译器会在 C 中抱怨。因此,如果您需要未知大小的数组,则需要动态分配内存。但是,既然有允许第一个示例的编译器,那么它们到底在做什么呢?他们仍然在数据段中,还是不在堆中?如果它们在堆上,那么示例之间有什么区别,为什么我仍然必须在第二个示例中调用 delete[] 而不是第一个示例?

0 投票
1 回答
52 浏览

memory-management - 本机语言中的堆栈溢出行为

我很好奇为什么大多数本地语言,包括 C、C++ 和 D,都没有定义堆栈溢出行为。是不是因为它需要检测每个堆栈变量分配和函数调用,而这反过来又会使代码变得异常缓慢?即使如此,它至少可以在编译器被提供一些额外的详细调试标志时启用。

我问这个是因为我alloca在编写 C++ 代码时对使用 C99 可变长度数组 (VLA) 和 C 函数感到怀疑。对于一些内存处理密集型算法,这可能会导致显着的加速。

我猜这个问题已经被问过很多次了,但我似乎找不到关于 stackexchange 的相关文章。

0 投票
1 回答
563 浏览

java - 使用数组和可变长度形式参数。(java:38: 错误: '.class' 预期)

我还没有完成这个程序的工作,所以我知道可能还有其他错误。我目前收到“.class”预期错误,由于某种原因,我看不到那个错误。
我正在使用 jGrasp,这是我的 Java 简介类的一个项目。

我知道有一个简单的答案,并且我已经进行了搜索以提供帮助,但是作为一个初学者,我需要很长时间才能将其他类似帖子的答案应用于我自己的问题。

错误信息如下:

^ 总是指向数量。

0 投票
1 回答
21631 浏览

c - 分配数组 VS。变长数组

给数组分配内存有两种方式,一开始是不知道大小的。最常见的方法是这样malloc使用

但是在 C99 中,在我们知道大小之后定义数组也是有效的。

它们完全一样吗?

0 投票
1 回答
11777 浏览

java - 多维数组:可变长度行?

可以执行可变长度列,例如:

我想知道是否可以做可变长度行,如果你知道一列的长度?:

谢谢你。

0 投票
1 回答
4534 浏览

arrays - C++:可变长度数组

可变长度数组 (VLA) 如何占用内存空间?

我观察到 VLA 不占用连续的内存空间,任何人都可以确认一下吗?

通过这两个memcpy操作,我的程序仅适用于 VLA 的几个起始索引。但是在memcpyforLoop 替换后,我的程序对于 VLA 的所有索引都可以正常工作。

0 投票
3 回答
58744 浏览

c - 初始化可变长度数组

在初始化可变长度数组时,编译器会给出错误消息:

代码片段:

可变长度数组应该如何初始化?以及为什么它的所有元素都没有0按照下面给出的方式初始化;

?

0 投票
1 回答
117 浏览

arrays - Perl - 拆分字符串

我正在做一个包含短语的每个单词的数组。当我尝试拆分它并打印长度时,控制台会给我一个巨大的数字,例如111039391231319239188238139123919232913123...(更多行)为什么?

这是我的代码:

0 投票
1 回答
408 浏览

c++ - C++ 中 vlas 的编译与运行时 const 变量分配和分配

当出现许多问题时,我正在研究具有非类型参数的模板函数(以避免动态分配数组)。我的第一个问题是关于编译时变量赋值。这源于以下对模板函数的调用尝试:

在这里,我们有两个错误:首先,编译器无法解析对 的调用getDegrees(A)

其次,我们无法n在模板调用中使用,因为它不是常量表达式。简单地n保持不变确实可以解决问题

但是,如果我要这样做

我们得到同样的错误。虽然编译器可能允许第二次赋值,但这样做是否被认为是不好的形式?此外,为什么让n常量在解决函数调用时会有所不同?

我的另一个问题是关于 vlas:是在堆栈还是堆上为它们分配了内存(并且这个编译器依赖于)?甚至在 C++ 中允许它们似乎也存在一些争议,是否应该避免它们以支持向量(或类似容器)?

欣赏任何见解!