Fortran Coder

查看: 10887|回复: 1
打印 上一主题 下一主题

[求助] Program received signal SIGSEGV, Segmentation fault.

[复制链接]

13

帖子

8

主题

0

精华

入门

F 币
83 元
贡献
51 点
跳转到指定楼层
楼主
发表于 2016-3-31 20:55:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面错误是fortran代码出现的,我主要是想通过c_loc获得p地址,给c数组然后传递给c函数调用。
Program received signal SIGSEGV, Segmentation fault.
0x0000000000408e96 in calc1_neighbor1 (neighbor_addrs=..., args=...) at dag_swim.f:289
289                  c_array(num)=c_loc(p(ii-iblock,jj))     
在这行出现段错误,p数组是real类型全局数组。type(c_ptr),pointer::c_array(:)。当ii=2,iblock=1,jj=1,就会出现断错误。
是不是获得地址不对造成的呐?请大神们帮忙



分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

712

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
607 元
贡献
311 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

沙发
发表于 2016-3-31 22:02:26 | 只看该作者
我写了个小代码测试,是没有问题的。
[Fortran] 纯文本查看 复制代码
Program www_fcode_cn
  use , intrinsic :: ISO_C_Binding
  Implicit None
  Real , target :: p( 3 , 3 )
  integer :: ii=2 , iblock=1 , jj=1 , num=3
  type(c_ptr),pointer::c_array(:)
  Allocate( c_array(5))
  c_array(num)=c_loc(p(ii-iblock,jj))     
  write(*,*) 'OK'
End Program www_fcode_cn

你再其他地方找找原因吧。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-3 02:15

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表