Fortran Coder

查看: 437|回复: 3

[讨论] 数组元素为0的参数传递是否有风险

[复制链接]

33

帖子

9

主题

0

精华

熟手

F 币
140 元
贡献
64 点
发表于 2024-9-1 11:23:20 | 显示全部楼层 |阅读模式
主程序向子程序传入数组A, 可能是1/2/3维, 其中某一维或几维大小是0
子程序直接定义接收的数组  REAL:: A(a,b,c)        !abc其中一个或多个=0

有没有可能 出现 Program Exception-access violation

如果有0大小出现, 是不是自动认为空元素, 不会影响其他参数的传入

2008

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1540 元
贡献
662 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

发表于 2024-9-1 20:49:08 | 显示全部楼层
等等,如果其中一个维度大小为0,那整个数组的大小就是0。
会不会这些维度的大小应该为 1 呢?

33

帖子

9

主题

0

精华

熟手

F 币
140 元
贡献
64 点
 楼主| 发表于 2024-9-23 10:53:29 | 显示全部楼层
fcode 发表于 2024-9-1 20:49
等等,如果其中一个维度大小为0,那整个数组的大小就是0。
会不会这些维度的大小应该为 1 呢? ...

目前没有发现, 0大小传入, 并不影响后面的变量传递

259

帖子

0

主题

0

精华

版主

World Analyser

F 币
717 元
贡献
510 点

新人勋章美女勋章元老勋章热心勋章规矩勋章管理勋章

QQ
发表于 2024-9-23 11:08:10 | 显示全部楼层
语法层面没有问题,Fortran语法是明确支持大小为 0 的数组的,但逻辑层面很容易出问题。
如果你非常确信自己的逻辑能力很强,当然可以信任自己这么做。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-10-6 15:05

Powered by Tencent X3.4

© 2013-2024 Tencent

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