Fortran Coder

结构体传出来的数组会改变

查看数: 2754 | 评论数: 2 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-9-14 13:33

正文摘要:

本帖最后由 zjk0112 于 2022-9-14 13:35 编辑 我用MKl中CSR格式的结构体遇到了如下:在调用subroutine identity_matrix_sparse1时,打印出来的n为3,但export传出来三元组中的CSR_val值异常(图2);若在identity ...

回复

zjk0112 发表于 2022-9-20 16:58:16
经过了一周的研究和尝试,我终于找到了错误产生的原因:在subroutine identity_matrix_sparse1产生的结构体需要用到局部变量,而局部变量在默认会清空,导致结构体错误。所以,解决的方法也很简单,只需要在子例程subroutine identity_matrix_sparse1中加save语句即可。
zjk0112 发表于 2022-9-14 13:52:47
我又尝试了,如果用动态数组则替代固定数组则可以避免这样的问题。

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

GMT+8, 2024-11-23 19:06

Powered by Tencent X3.4

© 2013-2024 Tencent

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