C++ 动态数组。为什么这个有效?

标签 c++ arrays dynamic

我在看这个算法,第二个:动态规划解法

http://www.geeksforgeeks.org/dynamic-programming-set-24-optimal-binary-search-tree/

它创建一个动态数组:int cost[n][n];

这是如何运作的?我可以在 GeeksForGeeks C++ 模拟器上运行代码,但在 Visual Studio 本地我收到错误“表达式必须具有常量值”。

我在这里误解了什么? C++在编译前不需要知道数组的大小吗?

最佳答案

代码不规范。

type name[runtime_size]

就是所谓的变长数组。这在 C++ 中不是标准的,只能在具有 g++ 或 clang 等扩展的编译器中编译。此扩展存在的原因是它在 C99 中有效。

您完全正确,数组的大小必须在编译时已知。如果您需要一个数组,并且直到运行时才知道大小,我建议您使用 std::vectorstd::unique_ptr<type[]> .

关于C++ 动态数组。为什么这个有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39779129/

相关文章:

c++ - 基本SDL2代码,在调用SDL_Quit()时为 “Stop working”

c++ - Java 的 EnumSet.allOf() 的 C++ 等价物是什么?

python - 我有一个单词列表。我想添加一个与每个单词关联的计数器变量。我该怎么做呢?

javascript - 动态添加的字段是添加随机序列-JS?

c++ - 调用父类(super class)方法运算符==

c++ - 简单字符串代码中没有匹配 'operator=='

c - C中的分词器程序

php - 将数组值插入数据库 laravel

c++ - 用于分析 bool vector 的 vector 的动态规划

c# - 具有动态编程的 FrameworkElement 和 FrameworkContentElement 的通用接口(interface)