请问出现这样的错误如何解决invalid types `int[int

作者&投稿:杨转 (若有异议请与网页底部的电邮联系)
C++语句错误 invalid types `int[int]' for array subscript~

C++不支持动态数组,比如像Basic中的Redim,Pascal中的SetLength等;
C++中的动态数组是以动态内存分配来实现的,即用new和delete动态分配和删除数组空间,所以像int Rev[len];这样的定义是非法的。
根据楼主说的main函数中可以编译,那可能是在main函数中,len被赋予了常量,这样C++能够根据语法判断出实际是类似于int Rev[10]这样的定义,所以是可以编译通过的。
但是在函数中,上述定义是不行的,因为函数调用时,编译器无法判断传递来的参数是否是编译期的常量,这样就构成了动态数组的定义,这在C++中是非法的。

扩展资料:
在C++中,类是支持数据封装的工具,对象则是数据封装的实现。C++通过建立用户定义类支持数据封装和数据隐藏。
在面向对象的程序设计中,将数据和对该数据进行合法操作的函数封装在一起作为一个类的定义。对象被说明为具有一个给定类的变量。每个给定类的对象包含这个类所规定的若干私有成员、公有成员及保护成员。
完好定义的类一旦建立,就可看成完全封装的实体,可以作为一个整体单元使用。类的实际内部工作隐藏起来,使用完好定义的类的用户不需要知道类是如何工作的,只要知道如何使用它即可。
参考资料来源:百度百科-C++

C++不支持动态数组,比如像Basic中的Redim,Pascal中的SetLength等
C++中的动态数组是以动态内存分配来实现的,即用new和delete动态分配和删除数组空间
所以像int Rev[len];这样的定义是非法的

根据楼主说的main函数中可以编译,那可能是在main函数中,len被赋予了常量,这样C++能够根据语法判断出实际是类似于int Rev[10]这样的定义,所以是可以编译通过的

但是在函数中,上述定义是不行的,因为函数调用时,编译器无法判断传递来的参数是否是编译期的常量,这样就构成了动态数组的定义,这在C++中是非法的
################################################
我刚测试了你的代码,是MinGW编译器,这是Dev Cpp内置的编译器:
错误应该是
void Rev(int Data,const int &len)这一行,这和你的声明
void Rev(int Data[],const int &len)是不同的。
我想你的本意应该是
void Rev(int Data[],const int &len)


这也就解释了在main中正确的原因,因为在main中定义的
int Data[len];是正确的

第一次听说G++支持动态数组定义,确实学到了!!!

void zhuoshao(int *x,int *zs,int k,int h)
{
for(int i=0;i<k;i++)
for(int j=0;j<h;j++)
zs[i][j]=x[i][j]*100/100-x[i][h]; <----这行提示错误
};

上面参数声明的是指针,你怎么下面用数组呢?


为什么电脑开机出现the data in the EC or EC flash might be corrupted...
电脑开机出现the data in the EC or EC flash might be corrupted,电脑开机出现这样的错误代码,说明电脑的电源出现了问题,需要更换电脑的电源来解决问题,具体的操作步骤如下:1、首先把电脑机箱上的螺丝都拧下来,打开机箱的盖子:2、打开了盖子之后就可以看到电脑的内部部件了:3、然后把电脑的电源...

电脑蓝屏错误代码0x00000000,这个代码要怎么解决,大神帮帮忙,急...
5 电脑机箱里面内存条进灰尘,拆开机箱,拆下内存条,清洁下内存金手指,重新装回去,就可能可以了。(cqjiangyong总结的,旧电脑经常出现这样的问题)6 电脑用久了内存坏、买到水货内存、多条内存一起用不兼容等,建议更换内存即可能解决。7 很多时候由于系统和驱动的兼容性不好,也会出现这样的错误,建议...

页面参数错误怎么办?
怎么打不开网页,显示参数不正确! 有关IE错误的问题,出现这种问题应排除其他的原因如病毒和硬件的故障,还有浏览器损坏或文件丢失,其次主要是IE核心的某些DLL文件在注册表中的条目丢失或有错。 本站提供四种解决方案: 1、Windows 9x\/Me\/NT\/2000的IE6.0用户,依次点击“开始”——“运行”,输入“regedit”打开注册...

应用程序错误:'0x005089d3'指令引用的'0x65696671'内存.该内存不能为...
5 电脑机箱里面内存条进灰尘,拆开机箱,拆下内存条,清洁下内存金手指,重新装回去,就可能可以了。(cqjiangyong总结的,旧电脑经常出现这样的问题)6 电脑用久了内存坏、买到水货内存、多条内存一起用不兼容等,建议更换内存即可能解决。7 很多时候由于系统和驱动的兼容性不好,也会出现这样的错误,建议...

重装系统出现usage error 518怎么办
2、如果是系统镜像文件有问题,用户可以到网上重新下载一个系统镜像文件重新安装。3、如果计算机硬盘坏道导致上述状况,可以通过老毛桃u盘启动盘中的Maxdos9.3工具箱中的scandisk磁盘扫描修复工具进行修复,如下图所示:硬盘修复完成后,重启电脑再次进行安装操作,应该就不会出现错误提示了。

一个问号和三个问号的区别
示例:这就是你的做法吗?你这个总经理是怎么当的??你怎么竟敢这样欺骗消费者???3.4 问号也有标号的用法,即用于句内,表示存疑或不详。示例1:马致远(1250?一1321),大都人,元代戏曲家、散曲家。示例2:钟嵘(?一518),颖川长社人,南朝梁代文学批评家。示例3:出现这样的文字错误,说明...

“502错误网关,服务器作为网关或代理,从上游服务器收到了无效的响应...
电脑上网的时候出现“502错误网关,服务器作为网关或代理,从上游服务器收到了无效的响应”,这是因为电脑的无线网络设置出现错误造成的,具体的修复方法如下:1、首先在浏览器找到右上角的工具打开,在下拉菜单中找到代理服务器选项:2、然后在弹出的代理服务器选项中,选择不使用代理的选项在前面打勾:3...

电脑开机蓝屏 unknown hard error c000218
重启,出现开机LOGO时连续点击ESC选择启动项即可(产品线不同,启动项的进入快捷键不同,华硕笔记本是按ESC,台式机或主板是按F8)Windows10与Windows8一样,支持UEFI或非UEFI模式引导(Windows7不支持UEFI引导)本次安装Windows10我们推荐选择UEFI模式引导,这样后续分区格式是更先进的GPT格式,如果选择非UEFI...

应用程序发生异常 未知的软件异常(0x0eedfade),位置为0x7c812afb 怎 ...
方案1:重新安装加密锁驱动和软件程序。方案2:360中,在使用开机优化加速时,将广联达授权服务禁用了。(1):在360中修改为开启状态,点击【优化加速】-【启动项】-【应用软件服务】,找到【Glodon Software License Service】,将其“恢复启动”;(2)我的电脑单击鼠标右键,选择【管理】,点击【服务...

...一个问题阻止windows正确检查此机器的许可证,错误代码0x
该问题一般有二种情况会出现如下提示:(1)电脑开机后,登陆用户名时出现以下窗口:“一个问题阻止Windows正确检查此机器的许可证。错误代码:0x80070002,然后重返用户登陆,不能再进入系统。多是打上升级补丁后出现该问题,(一般是你安装了ghost精简系统,然后再安装微软正版升级补丁会出现这样的错误。)...

乐昌市13954358856: 电脑开机显示InvaIid Partion Table是什么情况?怎么解决呢? -
驷永替硝: 这种状况2113是一种常见的硬盘故障,主要原因是硬盘主引导记录中的分区表出现错误,因为5261系统规定只能有一个分区为活动分区,而当硬盘引导错误时,会出现多个活动分区标识,这4102时候就会产生无法识别的情况,也就出现 “1653Invalid partion table"的画面.出现这种情况,一般使用Diskgen硬盘内修复系统软件,从而来修复系统修复损坏的分区表. 注:如以上方法如无法修复电脑容,建议重建分区并安装操作系统.

乐昌市13954358856: 急~重装系统后启动时出现Invadid Partition table,怎么解决啊. -
驷永替硝: 分区表无效,那就重新分区一下. 使用系统光盘先对电脑的硬盘进行重新"分区",然后在进行格式化就可以了. 格式化成功后,在开始装系统,一般就可以恢复正常了.

乐昌市13954358856: 清华同方电脑出现InvaIid. partition. table怎么办 -
驷永替硝: 参考资料:开机提示“invalid partition table”如何解决_ https://zhidao.baidu.com/question/444245392.html

乐昌市13954358856: IBM 重新安装系统出现inva lid partition table怎么解决? -
驷永替硝: 硬盘分区表错误,重新分区

乐昌市13954358856: 电脑出现inva partition table怎么办? -
驷永替硝: 分区表不可用,可能硬盘分区表被病毒损坏了,如果不考虑数据,直接重装系统.

乐昌市13954358856: 我的电脑不能下载东东,总显示inva lid histor ``这些东东,请问是怎么回事
驷永替硝: 因为你的电脑缺少这项的配置,去重新做个系统 或者仔细找这个配置项也成!

乐昌市13954358856: win7的dns配置错误怎么解决 -
驷永替硝: Windows 7系统出现DNS错误的处理方法 我们可以用变更DNS地址的方法来解决这一问题.步骤:右键 - 桌面网络图标 -属性,打开网络和共享中心,然后点击左侧的更改适配器设置;我们在打开的“网络连接”窗口,如果我们用的是无线网络...

乐昌市13954358856: 电脑老是出现DNS错误怎么办,这样的怎么解决 -
驷永替硝: 可以通过以下方法解决问题: 1、进行一下DNS修复就可以了.

乐昌市13954358856: 电脑开机总出现这个Error:loader couldn,t intialize service! 请问怎么解决? -
驷永替硝: 应该是Error:loader couldn,t initialize service!吧,你那个initialize少了一个I,意思是:出错:不能载入初始化服务!可能是误删了文件或者是文件损坏!看看能不能进入BIOS,能的话,恢复一下初始值看看!

乐昌市13954358856: 开机电脑显示dll错误怎么解决 -
驷永替硝: 一般是您删除东西不是在控制面板中卸载的,这样在开机启动中还有信息,您可以到开机启中看看有没有这个东西,有就去掉(另外就是某程序出了问题).请问原来不这样吧?如果是,出事前您在电脑上干了什么,下载什么了,什么东西有异常,如果想起什么追问我说说,如果您自己也不知怎么引起的,建议还原系统或重装.Win7810还原系统,右击计算机选属性,在右侧选系统保护,系统还原,按步骤做就是了,如果有还原软件,自带的映像备份,并且进行了备份,也可以用软件、映像备份还原系统.有问题请您追问我.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网