インテル® Fortran コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
C ポインターとの互換性を保持するために、ISO_C_BINDING モジュールには、C のオブジェクト・ポインターおよび関数ポインターと互換性のある、派生型 C_PTR と C_FUNPTR が含まれています。
これらの型およびモジュールの特定のプロシージャーは、2 つの言語間で動的配列を渡すためのメカニズムを提供します。動的配列の要素は、メモリー内で連続して格納する必要がないため、Fortran ポインターのターゲットまたは形状引き継ぎ配列を C へ渡すことはできません。ただし、すでに割付けられている割付け配列を C へ渡したり、C で割付けられた配列を Fortran ポインターに関連付けることはできます。さらに、次のように、C 形式のポインターを Fortran 形式のポインターに変換することもできます。
Fortran プログラムの例 |
|---|
|
C モジュールの例 |
|---|
#include <stdlib.h>
int *make_array(int n_elements) {
int *parray;
int i;
parray = (int*) malloc(n_elements * sizeof(int));
for (i = 0; i < n_elements; i++) {
parray[i] = i+1;
}
return parray;
} |