c++ - 在 C++ 的 CC 编译器中使用 argv[]

标签 c++ cc

在 g++ 编译器中,我的程序运行完美,然而,在 CC 编译器中,我得到一个错误。

以下行:Shape s[atoi(argv[1])]; 给出错误: 错误:数组下标运算符中需要整数常量表达式。

然后,我尝试将其更改为:int i = atoi(argv[1]); 后跟 Shape s[i];,但我仍然得到同样的错误。

我需要 argv[1],因为它从命令行获取要制作的形状数量。 例如./程序10 它应该使 Team s[10];

如何让 argv[] 与 CC 编译器一起工作?

最佳答案

团队s[10];

会在堆栈上创建数组,但这只有在 size 是常量表达式时才有可能。如果你想要动态数组,那么你必须通过调用 new[] 来动态创建数组。

int size = atoi( argv[1]);
Team* s = new Team[ size];

首选 std::vector<Team> tv(size);这将简化内存管理(毕竟,迟早,您将不得不学习 STL 库,从今天开始)。

关于c++ - 在 C++ 的 CC 编译器中使用 argv[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26058999/

相关文章:

c++链表删除函数留洞

makefile - 在 Debian 上安装 nullfs

ubuntu - Ocaml 没有创建 .o 文件

GCC,-W1 是什么意思

html - 将 C++ 字符串放入 HTML 代码中以在网络服务器上显示值

c++ - 使用 AVX2 时矩阵乘法代码运行速度较慢

c - 是否可以使用CC编译器编译多个目标文件?

c++ - 使用C++在LeetCode中的Pow(x,n)。地址 sanitizer 33

c++ - C/C++中的数组大小