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 
 

只能说用习惯了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);

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

你可能感兴趣的:(C++编译错误variable-sized object may not be initiali问题)