我試圖從C++訪問Fortran公共塊結構中的數組。
我有一個與C++和Fortran混合的示例代碼。C++和Fortran:從C++訪問Fortran公共塊中的數組時出錯Error
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);
我得到的值( 2):sample b:5
如果我嘗試打印任何其他數組a值我只是得到一個segementation故障...
printf("sample_.a[1]=%d\n",(int)sample_.a[1]);
printf("sample_.a[0]=%d\n",(int)sample_.a[0]);
我在做什麼錯?¿任何想法¿?
我想,也許我必須將數組「a」的長度也傳遞給C++,但如果是這樣,我也不知道該怎麼做。
你是不是該數組傳遞給C++代碼。您直接訪問公共塊作爲外部結構。請相應地糾正你的問題。我已經改正了標題。 –