回 帖 发 新 帖 刷新版面

主题:数组内存溢出

dis_cal:do j=1,sta,1
            dis(j)=((est_x(ii)-sta_x(j))*eps)**2+((est_y(ii)-sta_y(j))*eps)**2
            lab(j)=j
            if ((j.eq.1).or.(j.eq.2)) then
                print*,'j',dis(j)
            end if
        end do dis_cal
        do n=1,n_no,1
            do j=n+1,sta,1
                print*,'dis',n,dis(n),j,dis(j);pause
                if (dis(j).lt.dis(n)) then
                       temp_dis=dis(n)
                       dis(n)=dis(j)
                       dis(j)=temp_dis
                       f=lab(n)        
                       lab(n)=lab(j)
                       lab(j)=f
                end if
            end do
            print *,n,'st sta dis',dis(n),lab(n);pause
        end do 

第一次打印的结果是dis(1)= 29661,dis(2)= 31505,但是在打印的时候变成了,dis(1)= 17 ,dis(2)=18.好像是内存溢出的问题,但是应该怎么改呢?谢谢各位。第一个循环是计算dis数组的值,然后选出前n_no个数。

回复列表 (共16个回复)

11 楼

[quote]你的邮箱真是多啊,神马邮箱都有……[/quote]
呵呵, 教育网邮箱毕业就没的了. 不常用. 只用于重要场合[em1]

12 楼

[quote][quote]yeg001@foxmail.com 这个就可以。 不过我不一定能及时回复。[/quote]谢谢![/quote]
还缺两个include的文件, 无法运行...

13 楼

[quote][quote][quote]yeg001@foxmail.com 这个就可以。 不过我不一定能及时回复。[/quote]谢谢![/quote]
包括两个include在内的全部文件已发到邮箱,但是因为没有数据,你不可能运行的啊?另外,请问能推荐一些学习linux下Fortran编程及编译的学习材料吗?我自己的学习总是很不得法。
谢谢
Amely

14 楼

在没有给我一个完整可运行的程序, 我把要读文件的语句屏蔽掉, 但还是很多错. 所以调试难以进行下去. 这里只给出一个疑问的地方, 可能是错误所在, 大概在57行
lab(j)=j
lab只有10个元素, j一直循环到200多, 应该是数组越界. 如果release下不检查边界或者不出现问题,但lab附近的变量会被修改导致错误.

邮件就不回复了. 我调试基本在windows下进行,linux下我只是配置好编译器, 简单写编译命令, 或者写makefile. 论坛里很多牛人, 不懂的时候可以请教他们.

15 楼

[quote]在没有给我一个完整可运行的程序, 我把要读文件的语句屏蔽掉, 但还是很多错. 所以调试难以进行下去. 这里只给出一个疑问的地方, 可能是错误所在, 大概在57行
lab(j)=j
lab只有10个元素, j一直循环到200多, 应该是数组越界. 如果release下不检查边界或者不出现问题,但lab附近的变量会被修改导致错误.

邮件就不回复了. 我调试基本在windows下进行,linux下我只是配置好编译器, 简单写编译命令, 或者写makefile. 论坛里很多牛人, 不懂的时候可以请教他们.[/quote]
谢谢!
[em3]

16 楼

[quote]在没有给我一个完整可运行的程序, 我把要读文件的语句屏蔽掉, 但还是很多错. 所以调试难以进行下去. 这里只给出一个疑问的地方, 可能是错误所在, 大概在57行
lab(j)=j
lab只有10个元素, j一直循环到200多, 应该是数组越界. 如果release下不检查边界或者不出现问题,但lab附近的变量会被修改导致错误.

邮件就不回复了. 我调试基本在windows下进行,linux下我只是配置好编译器, 简单写编译命令, 或者写makefile. 论坛里很多牛人, 不懂的时候可以请教他们.[/quote]
确实是这个造成的,谢谢

我来回复

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