C++ array Visual Studio 2010 vs Bloodshed Dev-C++ 4.9.9.2
C++ array Visual Studio 2010 vs Bloodshed Dev-C++ 4.9.9.2
这段代码在流血dev - c++ 4.9.9.2中编译得很好,但在Visual Studio 2010中我得到一个错误:表达式必须有一个常量值。如何在用户输入数组大小后不使用指针创建数组?
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
int size = 1;
cout << "Input array size ";
cin >> size;
int array1[size];
system("PAUSE");
return 0;
}
使用std::vector
代替数组(通常是个好主意):
std::vector<int> array1(size);
如果你在意的话,你看到的差异不是来自dev - c++本身,而是来自gcc/g++。你正在使用的是c++的一个非标准扩展,g++碰巧实现了,但vc++没有。
使用变量自动调整数组大小的能力是C的一部分,而不是c++的一部分,并且是GCC似乎想要强加给我们所有人的扩展。devc++是一种邪恶的代码,尽管它在这里没有错。为了改变(这完全是GCC做的)-我无法想象为什么你(或任何人)想要使用它。
你真的应该用带有警告标志的GCC来编译你的c++代码。我建议-Wall和-pedantic作为最小值
或
int array1 = new int[size];
也能很好地工作(距离我上次接触c++已经有一三个月了)
但是,如果使用c++,使用std::vector,更灵活。
相关文章:
- 请发现它在 dev 中工作的错误,但在 hackerrank 中不起作用
- 无法在 dev-c++ 上编译程序?
- Dev c++ mingw 不再编译
- 如何在 Windows 上将bcrypt_gensalt与 /dev/urandom 一起使用?
- 我正在使用dev c ++,但收到错误(C++98'array'必须由构造函数初始化)
- dev Wx Dev C++ vs Graphics.h?
- dev如何在C++中比较二进制数
- 在linux中为c++dev配置VSCode
- DEV C++ 第 69 行 [错误] ISO "for" 范围更改了"i"的名称查找 [-允许]
- dev在试图从dev c++mingw 4.8.1中的文件读取时接收分段错误
- 我有一个C++函数,它在Dev C++中编译,但在G++中不编译
- 写入/dev/ttyS0后读取0字节
- 如何将 stderr 重定向到 /dev/null
- 如何创建C++DLL(使用DEV -C++)并在MT4脚本中使用(逐步)
- auto 关键字在 Dev c++ 中不起作用
- 从 win 7 升级到 Win 10 后,出现 Dev-C++ makefile.win 编译错误
- 如何检测 ofstream 是否正在写入 /dev/null
- 如何将 libproxy-dev 链接到现有的 cmake 项目(C++)?
- 在哪里调用主函数(dev c ++)
- C++ array Visual Studio 2010 vs Bloodshed Dev-C++ 4.9.9.2