首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Fortran 64位端口中实际数组的Cray指针的使用

Fortran 64位端口中实际数组的Cray指针的使用
EN

Stack Overflow用户
提问于 2022-01-11 21:31:44
回答 1查看 75关注 0票数 2

首先,我不是一个Fortran开发人员,而是一个从32位到64位架构的本地应用程序端口。

在一个特定的Fortran文件(在32位中工作得很好),一个64位的分段错误崩溃。该问题与使用动态分配给特定大小的实数组的cray指针有关。当例程将大量的reals读取到数组中时,就会出现分段错误。注意:如果我静态地分配一个真正的数组并使用它,那么代码将正确地从文件中读取并填充数组。下面是一个简短的例子:

代码语言:javascript
复制
    real climpack
    pointer (pclimpack, climpack)

    pclimpack = malloc(ipack)
     .....
    read(31, iostat=istat) climpack
    free(pclimpack)

现在,这一段代码可以很好地处理整数( 32位和64位),对于32位上的reals也很好,而对于64位上的reals则很好。为什么它与静态分配的数组一起工作,而不与cray指针一起工作?我遗漏了什么?

应该注意的是,我使用gfortran作为编译器。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2022-01-12 15:24:40

看起来在malloc语句中出现了一个问题,其中需要在大小中添加一个*8,以说明每个malloc文档的64位体系结构。有时,充足的夜晚,睡眠和新的眼睛,第二天是所需要的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70673696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档