C++ から Fortran 共通ブロック構造内の配列にアクセスしようとしています。
C++ と Fortran の混合サンプル コードがあります。
フォートラン:
integer a(5),b
common /sample/ a,b
a(1) = 1
a(2) = 5
a(3) = 10
a(4) = 15
a(5) = 20
b = 25
次にC++で:
extern "C"{
extern struct{
int *a,b;
}sample_;
C++ から、値を出力しようとするとsample_.b
:
printf("sample b:%d\n",sample_.b);
a(2) の値を取得します:sample b:5
そして、他の配列の値を印刷しようとすると、セグメンテーション違反が発生します...
printf("sample_.a[1]=%d\n",(int)sample_.a[1]);
printf("sample_.a[0]=%d\n",(int)sample_.a[0]);
私は何を間違っていますか?¿任意のアイデア¿?
おそらく、配列「a」の長さもC++に渡す必要があると思いますが、そうであれば、その方法もわかりません。