基本的に、ここに私の問題があります。自分の C++ コードから他の誰かの FORTRAN 関数を呼び出しているのですが、頭痛の種です。いくつかのコード:
function c_error_message()
character(len = 255) :: c_error_message
errmsg(1:9) = 'ERROR MSG'
return
end
それがFORTRAN関数です。私の最初の質問は、セグメンテーション違反を引き起こすものはありますか?
そうでない場合は、2 番目に: それは何を返しますか? ポインタ?次のCステートメントで呼び出そうとしています:
char *e = c_error_message_();
これにより、セグメンテーション違反が発生します。
c_error_message();
それもセグメンテーション違反を引き起こします。
以前に次のコードで c_error_message_() を宣言しました。
extern"C" {
char* c_error_message_();
}
実際の戻り値の型とは異なる戻り値の型を持つ関数を宣言すると、segfault が発生しますか?
私は途方に暮れています。返信ありがとうございます。