首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C++ int a [n]在g ++中工作但不在vs2008中工作

首先,我们需要了解C++中的数组定义和初始化。在C++中,数组的大小必须是常量表达式。在这个例子中,int a[n]表示a是一个整数数组,其大小由变量n决定。

在C++11之前,数组的大小必须是常量表达式,因此int a[n]是非标准的。从C++11开始,可以使用变量作为数组大小,但是编译器对此的支持可能会有所不同。

Visual Studio 2008(VS2008)是一个较早的C++编译器,它可能不支持C++11中的变量长度数组(VLA)。而g++是一个支持C++11的编译器,因此它可以正常编译int a[n]

为了解决这个问题,您可以使用标准C++的动态数组,例如std::vector。这是一个示例代码:

代码语言:cpp
复制
#include<vector>

int main() {
    int n = 10;
    std::vector<int> a(n);
    return 0;
}

在这个示例中,我们使用std::vector来创建一个大小为n的整数数组。这种方法在所有现代C++编译器中都是可以接受的。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

用Python使用C语言程序(Windows平台)

前言 机器学习,很多时候我们需要Python和C的混合编程,最重要的原因是为了性能效率的提升: 解释型语言一般比编译型语言慢,一般提高性能的有效做法是,先做性能测试,找出性能瓶颈部分,然后把瓶颈部分在扩展实现...如果你一开始就选择了vs2008,将在后期会省去很多工作。 这是因为python2.7windows下的编译器就是使用vs2008的工具。当然如果你用别的版本的vs,后面也有解决方法。...2、编写、调试C语言程序 example.h /*File: example.h*/ int fact(int n); example.c /* File: example.c */ //计算n!...#include "example.h" int fact(int n) { if (n < 0){ /* This should probably return an error,...终端运行: swig -python example.i 如果编译的是C++文件,需要加上-C++选项: swig -c++ -python example.i 运行完这个命令后,工作目录里会出现example_wrap.c

2.6K40

windows下编译ffmpeg源代码

参考链接: C++ mbrlen() 由于工作原因,需要使用ffmpegwindows下进行代码跟踪   于是,上网找相关文章,搜索出来有很多,经过查看,其中的一个英文网站是最好的,网址:   http...title=Main_Page   上面有详细说明整个过程,为了防止此网站不能访问的问题,这里特把一般步骤写下来,以做个记录。后面会说明我在按照上面说的步骤进行的过程遇到困难的解决方法。   ...to cpp.exe g++-sjlj.exe to g++.exe gcc-sjlj.exe to gcc.exe 我用的是3.4.5的,所以我的不需要改名   2.3 整合MinGW 和 msys...开发   基于ffmpeg的开发,本来是想着比较简单,实际上还是有点问题   起初vc6.0下编译,一直编译不过,只好放到vs2008下编译,才编译通过,但是release下还是没办法编译通过,链接时的错误如下...把所有long long改成了__int64,如果是直接在vs2008下编译,则这个修改应该是不需要的   D.

85220

bjam 参数

这个奇怪的问题很可能是由于环境变量里的路径过长或包含不该有的符号而导致的,奇怪的是,VS2005并没有这个冲突问题。...所以,这时候如果要编译boost的话只有两条路走:1、搞定VS2008的冲突,重装环境变量里路径过长的程序。2、用VS2005的命令行工具去编译。...顺带一提的是,这时候最好不要用系统的cmd,而是开始->程序->VS2005->工具->命令提示里执行bjam的工作。...对于每一种特性,向标记添加一个字母: Key Use this library when: s 静态链接到C++标准库和编译器运行时支撑库 g 使用标准库和运行时支撑库的调试版本 y 使用Python...大多数unix平台上,.a是静态库,.so是共享库。Windows上,.dll表示共享库,.lib是静态或导入库。

17420

CC++程序员 面试经历总结

4、MFCCSocket类能不能用在多个线程,请说明原因。 5、IOCP服务器的应用,其特点和优势是什么,主要解决了什么问题。 6、存储过程是什么?ADO和ODBC存储过程如何使用?...http://www.cnblogs.com/mydomain/archive/2010/09/23/1833369.html 8、C++ 程序调用被 C编译器编译后的函数,为什么要加 extern...假设某个函数的原型为: void foo(int x, int y); 该函数被C编译器编译后在库的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字。...QTWindows平台下一般采用MinGW或VS2008做编译器;     Linux系统如Ubuntu等发行版下采用GCC作为编译器;     MAC系统下采用GCC或CLang作为编译器。...五、一家建筑/工程/结构类的设计公司,应聘职位为MFC软件开发,笔试题为C++。 1、说明typedef int (*pFun)(int,int *)pFun的含义,这种类型的用途主要是什么?

2.2K31

【技术】Linux编译C++代码的g++工具,以及g++的常用操作指令

GCC 编译器来实现 C/C++的编译工作的。...除了完成-O1 的优化之外,还进行一些额外的调整工作,如指令调整等 -O3: 包括循环展开和其他一些与处理性相关的优化工作,选项将使编译的速度比 -O 慢,通常产生的代码执行速度会更快。...指定库文件 g++ 工具, -l 或者 -L 指定库文件,|(大写i) 指定库文件路径 -l 参数(小写L)就是用来指定程序要链接的库,-l 参数紧接着就是库名,/lib、/usr/lib、/usr...-w 关闭警告信息 使用高版本的C++标准进行编译的时候,代码写的不规范的时候,比如定义变量但是不使用,g++将会提示对应的警告信息。...DEBUG 进行逻辑处理 #ifdef DEBUG printf("DEBUG LOG\n"); #endif printf("in\n"); return

4.1K20

C和C++编译工具的基本使用方法

而GCC下面有两个比较常用的工具就是gcc(GUN C Compiler)和g++(GUN C++ Compiler),即c语言编译器和c++编译器。我通常用gcc编译c代码,用g++编译c++代码。...-O 告诉 g++ 对源代码进行基本优化。这些优化大多数情况下都使程序执行得更快。-O2 告诉 g++ 产生尽可能小和尽可能快的代码。...如 -O2,-O3,-On(n通常为3) -O 同时减少代码的长度和执行时间,其效果等价于 -O1 -O0 表示不做优化 -O1 表示默认优化 -O2 除了完成-O1的优化之外,还进行一些额外的调整工作...,如指令调整等 -O3 则包括循环展开和其他一些与处理性相关的优化工作,选项将使编译的速度比 -O 慢,通常产生的代码执行速度会更快。...printf("DEBUG LOG\n"); #endif printf("in\n"); return 0; } 在编译的时候,使用 g++ -DDEBUG

1.1K10

fstream 中文路径_gradle files have changed

目录 中文路径 编译器 统一字符集 修正方法 改全局的Locale 使用wstring 字符集改为宽字符集 升级编译器 一劳永逸 将fstream再包装 总结 ---- C++的标准库,std::fstream...查了一些资料,说VS2008、vs2005,fstream的open函数,会判断当前的全局编码环境,导致含中文的路径打开失败,也提到了很多修改方法,如让修改全局的Locale改为宽字符、使用宽字符集...编译器 我所使用的开发环境是vs2008,有些文章说只vs2005、vs2008的环境才有这个问题,好在我的开发环境中有vs2015,所以vs2015也测试下。...C++标准库,不约定std::fstream的字符集支持与否的,这个问题肯定和编译器有关。 测试项目的属性界面,字符集都是默认设置的“使用Unicode字符集”,对比也是有效的。...2.修正方法 为了vs2008使用std::fstream,可供使用的方法也有很多,最后总结罗列下面几种改进方法。

1.2K10

Dll 导出函数那些破事

VC++支持两种语言:即C/C++,这也是造成DLL导出函数差异的根源 我们用VS2008新建个DLL工程,工程名为“TestDLL” 把默认的源文件后缀 .CPP改为.C(C文件) 输入测试代码如下:...Visual C++ 提供的方便方法 01行的int 前加入 __declspec(dllexport) 关键字 通过以上两种方法,我们就可以导出MyFunction函数。...下面我们来看一下C++文件 我们用VS2008新建个DLL工程,工程名为“TestDLL” 默认的源文件后缀为 .CPP (即C++文件)。...Visual C++ 提供的方便方法 01行的int 前加入 __declspec(dllexport) 关键字 通过以上两种方法,我们就可以导出MyFunction函数。...如果利用不同编译器分别生成DLL和访问DLL的exe程序,后者访问该DLL的导出函数时就会出现问题。如上例函数MyFunctionC++编译器改编后的名字是?

2K30

关于各种无法解析的外部符号问题的相应解决方案

使用vs2008调试程序的过程,经常会出现无法解析的外部符号问题,可能的原因有很多种,下面这些是我一年来积累的经验. 仅供参考....[1]只写了类声明,还没有写实现类,造成调用时无法解析 [2]声明和定义没有统一,造成链接不一致,无法解析 [3]没有项目属性页的链接器的命令行选项加入相应的类包。...[4]没有c++包含目录和库目录加入相应的类包路径 [5]测试工程中被测文件目录可能需要包含被测类的cpp定义文件 [6]ICE接口测试时,无法解析可能因为被测文件没有包含进相关的cpp文件...,另外,TestSuite_ProjectRun.h文件需要包含IProjectRun.h头文件,及相关的头文件(举例)。...GetObjectA@CTagTree@HiRTDB@@QAEHHABUSBaseReadProps@2@AAUSBaseReadValues@2@@Z),该符号函数”public: int __thiscall

62110

VS编译BOOST,bjam参数详解

vs2008编译boost 【一、Boost库的介绍】 Boost库是一个经过千锤百炼、可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一。...Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。C++社区中影响甚大,其成员已近2000人。...,调用的地方定义短小匿名的函数对象,很实用的functional功能; (5)concept check,检查泛型编程的concept; (6)Mpl,用模板实现的元编程框架; (7)Thread,...【二、Boost库的编译】 【Setp1 准备工作】: (1)Boost 下载可以到官方网站下载: http://www.boost.org/ (2)安装VS2008 IDE 【Setp2 编译Boost...生成的库文件名称包含 “-mt” variant=release 生成的库文件名称不包含 “-gd” variant= debug 生成的库文件名称包含 “-gd” runtime-link= static

28410

各种基本算法实现小结(四)—— 图及其遍历

2(网摘) 本文引用网址:http://bbs.bccn.net/thread-155311-1-1.html(编程论坛) 看到本算法在网上转载较多,比较流行,且能直接运行 发现大多转载,也把DFS...与BFS正好写反了,对此本文已修正 此外,本算法混用了C与C++,不够单纯,申请的指针空间也未及时释放 测试环境:VC 6.0 (C) #include #include <malloc.h...front]; front=(front+1)%QUEUE_SIZE; } public: int *base; int front; int rear; }; //图G查找元素c的位置...[s2][s1]=w; } } //图G顶点k的第一个邻接顶点 int FirstVex(Graph G,int k) { if(k>=0 && k<G.vexnum) //k合理 for(int...=INFINITY) return i; return -1; } //图G顶点i的第j个邻接顶点的下一个邻接顶点 int NextVex(Graph G,int i,int j) { if(i

47420

QT的一些小知识

记录一下前段时间工作中用到的东西,包括开发工具和一些简单的技巧吧。也许对于大家来说耳熟能详了。    ...最开始学习QT记得是Ubuntu12.04下用apt命令行的方式安装了QT4.8.4以及QT Creator等工具,QT算是Linux下比较好的C++ GUI开源框架了。...公司用的Windows的QT组合是:qt-win-opensource-4.8.5-vs2008.exe (VS2008编译过的QT4.8.5库)+ VS2008(作为替代mingw的编译器用)+qt-creator-windows-opensource...-2.8.0.exe(IDE);为了VS2008能使用QT库以及建立QT项目,需要安装插件工具:qt-vs-addin-1.1.11-opensource.exe。...QT的信号-槽机制、Model-View框架、主要使用QT4的Widget开发UI界面什么的,发觉用有时使用QSS样式表来做界面和方便,比如同一个按钮的按下、正常和悬垂状态通常需要三种背景图来标识。

1.2K20

2024-03-30:用go语言,集团里有 n 名员工,他们可以完成各种各样的工作创造利润, 第 i 种工作会产生 profit

2.递归函数 f2 逐步填充 dp 数组,记录以当前工作和利润数为基础时的计划数量。 3.每次计算时检查数组是否已有记录,避免重复计算。 4.返回最终计划数量。...profitableSchemes3: 1.同样采用动态规划,只使用二维数组 dp,减少额外空间的使用。 2.从最后一个工作向前逐步计算满足条件的计划数量。...3.根据当前工作是否选择、人数是否足够、利润是否达标,更新动态规划数组的值。 4.最终输出满足条件的计划数量。...• profitableSchemes3: 类似于第二种算法,只使用了二维数组,时间复杂度也为 O(m * n * minProfit)。...[]int) int { return f1(group, profit, 0, n, minProfit) } func f1(g []int, p []int, i int, r int

10220

RPC的实现

name = 2;   optional string email = 3; } .proto文件message类似于C语言中的struct的,转换成C++语言后,它对应于C++的一个类...不管是flex还是bison,规则部分都可以添加注释,两者方式有不同之处: 1) flex 注释不能顶格写,“/*”前至少要有一个空格或Tab,“*/”可以顶格,还可以与“/*”不在同一行...简单的说,flex的工作就是将输入分解成一个个的Token,并且分析出一个Token时,可以执行指定的动作,动作以C/C++代码方式表示,也可以没有任何动作。...简单的说,bison的工作就是推导出Token之间的关系,每推导出一个关系后,都可执行指定的动作,动作以C/C++代码方式表示,也可以没有任何动作。。...+代码,所以按照C/C++风格来写即可, // 经flex编译后,会被搬到lex.yy.c文件 #include "func.h" // 要用到func.h定义的g_lineno

1.5K30
领券