回 帖 发 新 帖 刷新版面

主题:fortran  矩阵益处却不报错,正常吗?

PROGRAM MAIN
      implicit none
      integer maxnw,maxss,maxetd
      PARAMETER (MAXNW=160,MAXSS=13000,maxetd=30)

      integer IEQPT(30,2)   !定义个2维矩阵
      
      IEQPT(342,2)=189
      WRITE(*,*) IEQPT(342,2) !超出矩阵维数,但不报错,结果屏幕显示189

      END
 
真是奇怪,这种情况正常么?

回复列表 (共6个回复)

沙发

你可以换一个编译器了。

删掉垃圾编译器吧


[img]http://img011.photo.21cn.com/photos/mark/20120623/o/73B7004A14FF482DC73BF898BEE694A3.jpg[/img]

板凳

编译选项里要开数组越界检查

3 楼

请问如何开启数组越界检查?谢谢!!

4 楼


谢谢,换了个编译器就可以。但是还是觉得这种错误编译器居然没有提示,很无语。还是因为编译器设置没设好?有这个功能我没开?

5 楼

这要看你用什么编译器了。

如果是 VF 系列的话,

在命令行下用

/check:bounds

在 IDE 里,通常在工程设置,Fortran,Run-time 里有一个 Check Array and String bounds 选项,勾选它,或者切换为 Yes

6 楼

[quote]
谢谢,换了个编译器就可以。但是还是觉得这种错误编译器居然没有提示,很无语。还是因为编译器设置没设好?有这个功能我没开?[/quote]

不同编译器,这些设置的默认项可能不同。

不妨说说你以前用的什么编译器,刚刚换了什么编译器?

我来回复

您尚未登录,请登录后再回复。点此登录或注册