main.f90:
Код: Выделить всё
program main
implicit none
character(len=100) arr(3)
call get_string_array(arr, 100, 3)
write(*,'(3(a,3x))') arr
end
Код: Выделить всё
#include
#include
using namespace std;
void ConvertToFortran(char* fstring, size_t fstring_len, const char* cstring)
{
size_t inlen = strlen(cstring);
size_t cpylen = min(inlen, fstring_len);
fill(fstring, fstring + fstring_len, ' ');
copy(cstring, cstring + cpylen, fstring);
}
extern "C"
{
void get_string_array_(char** arr, int len, int n)
{
const char* strings[] = {"duma1", "duma2", "duma3"};
for (int i = 0; i < n; i++)
ConvertToFortran(arr[i], len, strings[i]);
}
}
Код: Выделить всё
ifx -c main.f90
icx -c cpp_func.cpp
ifx main.o cpp_func.o
*** Редактировать ***
Любое решение, способное передавать массив строк из C++ в Fortran, будет оценено по достоинству.
Подробнее здесь: https://stackoverflow.com/questions/790 ... to-fortran