0

我在 fortran77 dec(3, 25000) 中有以下数组,即使只使用了第二维中 25000 个位置中的 8898 个。

我将此数组作为参数与其他数组一起传递给 C 函数。尽管其他参数的值似乎是正确的,但 dec() 值是错误的。

我试过只传递 dec() 数组,结果是一样的。dec(1,1) (fortran77) 中的值等于 dec[0][0] (C) 中的值,但是对于数组中的随机位置,我在调用 C 之前在 fortran77 中没有得到相同的值函数和 C 函数中。

知道为什么会这样吗?

该数组在 fortran 中声明为 real*8 dec(3,25000),在 C 中声明为 int dec[3][25000]。

提前致谢

4

1 回答 1

5

请记住,二维数组的主要顺序是在两种语言之间交换的。因此dec[i][j],一种语言将是dec[j][i]另一种语言,加上您已经发现的索引基础调整。

于 2012-06-24T05:54:47.497 回答