Массивы строк в Fortran-C соединяются мостами с использованием iso_c_binding

Я пишу код, который будет вызывать функцию C из Фортрана, используя механизм взаимодействия Фортрана с Си (представленный в Фортране 2003 и реализованный в более новых версиях gfortran и ifort).

Этот ответпочти то, что мне нужно, но я не могу понять, какое объявление интерфейса я должен использовать в Фортране для функции C, которая выглядит следующим образом:

int use_array(int n, char * array[]){
    int i;
    for(i=0; i

Я не понимаю, что объявление должно быть для интерфейса на стороне Фортрана:

interface
    function use_array(n, x) bind(C)
        use iso_c_binding
        integer (c_int) use_array
        integer (c_int), value :: n
        character(c_char) WHAT_SHOULD_GO_HERE? :: x
    end function use_array
end interface

Я знаю, что мне также придется иметь дело с проблемой нулевого завершения.

12
задан francescalus 13 December 2017 в 10:27
поделиться