gpt4 book ai didi

c++ - Fortran90 和在 C++ 中创建的数组的大小

转载 作者:太空宇宙 更新时间:2023-11-04 12:11:02 28 4
gpt4 key购买 nike

我正在尝试从 C++ 主程序调用一些 Fortran 90 代码。 Fortran 子例程采用 double 组(称为 X)作为参数,然后在代码的许多地方继续使用 size(X)。我使用通过

创建的 C 数组调用例程
double *x = new double[21]

但是当我在 Fortran 代码中打印 size(X) 的结果时,我得到 837511505 或其他一些大数字。

现在我可以修改 Fortran 代码,所以最坏的情况是重写函数,将大小作为参数传递。但我宁愿不这样做。

有谁知道我是否可以通过 Fortran 例程可以确定其大小的方式创建 C 数组?

最佳答案

这是一个特定于实现的特性。许多实现(例如 RSX 和 OpenVMS)定义了一个结构,用于传递指向数据的指针以及维度、类型等的描述。其他实现不传递此类内容,除非外部声明显式调用一种机制来生成描述符。大多数其他人没有提供这种机制。

在不知道使用哪个实现的情况下:

a) 阅读编译器的文档
b) 让编译器生成程序集,并检查它以查看它期望什么

关于c++ - Fortran90 和在 C++ 中创建的数组的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9844326/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com