В принципе, вот моя проблема. Я вызываю чужие функции FORTRAN из моего кода C ++, и это доставляет мне головную боль. Какой-то код:
function c_error_message()
character(len = 255) :: c_error_message
errmsg(1:9) = 'ERROR MSG'
return
end
Это функция Фортрана. Мой первый вопрос: есть ли там что-нибудь, что могло бы вызвать segfault?
Если нет, то второе: что это возвращает? Указатель?
Я пытаюсь вызвать его с помощью следующего оператора C:
char *e = c_error_message_();
Это вызывает segfault.
c_error_message();
Это также приводит к segfault.
Ранее я объявил c_error_message_ () со следующим кодом:
extern"C" {
char* c_error_message_();
}
Будет ли объявление функции с типом возвращаемого значения, отличным от фактического, возвращать тип segfault?
Я в растерянности. Спасибо за любые ответы.