C++编译错误variable-sized object may not be initiali问题
作者:leap_ruo
这篇文章主要介绍了C++编译错误variable-sized object may not be initiali问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
c++ 编译错误 variable-sized object may not be initialized
int a = 4; int b = 5; char new_arr[a][b] = {0}; //此处会报错 variable-sized object may not be initialized // 报错:可变长的队列不能被初始化, 意思是ab都是变量,不能在申明new_arr的时候,直接初始化new_arr内的元素 // 正确的做法如下 int a = 4; int b = 5; char new_arr[a][b]; for(int i=0;i<a;i++) for(int j=0;j<b;j++) new_arr[i][j] = 0;
只能说用习惯了Python再用C++,会出现觉得理所当然的东西突然不对了,有点无从下手
c/c++常见编译运行错误
常见的编译运行错误
1.c++编译出现iostream no such file or directory 的原因
将.cpp 文件 误设为了.c 文件。
**解决办法:**删除这个文件, 重新建立.cpp文件,重新编译
2.c/c++ 出现‘a’ was not declared in this scope
表示a变量未被定义,最好的解决方式是把它定义成全局变量
3.当运行结束时,输入一个数字或字符按一下回车键就输出结果(按理还会输出内容)
表示有些东西没读进去一些内容,需要检查个循环是不是加入了封号,他会让循环直接结束
4.在网上用洛谷和pat时,一定要严格的赋值初始化,因为这些编译软件非常严格
关于文件的保存时 不能出现
* < > / \ | ? : "" 这些字符都不可以出现的
5.[error] ld returned 1 exit status
- 表示小黑窗没有关
- 还有一种情况就是,函数的字母错着呢,如void cos(float);在下面写的时候,写成了void cox()就会出现小黑窗,这种情况一定是由不细心造成的
7.suffix "ac" on integer constant
该问题比较多,你提到的错误时ift条件中4ac 中间没有加* 引起的
8.当出现警告时,程序能整成运行出结果,说明这种警告无关紧要
‘int index [5005]'被重新声明为不同意义的符号 int num[5005], score[5005], index[5005]; 这个错误表示,index为系统定义的符号,需要改变index变量,变成其他的都行 C3863 不可指定数组类型“int [510]”
有时候运行错误,也可能是数组开的范围太小的缘故。
==C3863 不可指定数组类型“int [510]”==原因
而在使用fill对数组初始化时,并没有采用二维数组初始化的方式,而是写成了: fill(e, e + 510 * 510, inf); 正确写法应该是: fill(e[0], e[0] + 510 * 510, inf);
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。