Tag: fortran2003

如何在C中访问(动态分配)Fortran数组

我的主要问题是为什么数组做了如此奇怪的事情以及是否有任何方式以“干净”的方式执行以下操作。 我目前有一个C程序foo.c通过dlopen/dlsym连接Fortran程序bar.f90 ,大致类似于下面的代码: foo.c的: #include #include int main() { int i, k = 4; double arr[k]; char * e; void * bar = dlopen(“Code/Test/bar.so”, RTLD_NOW | RTLD_LOCAL); void (*allocArray)(int*); *(void **)(&allocArray) = dlsym(bar, “__bar_MOD_allocarray”); void (*fillArray)(double*); *(void **)(&fillArray) = dlsym(bar, “__bar_MOD_fillarray”); void (*printArray)(void); *(void **)(&printArray) = dlsym(bar, “__bar_MOD_printarray”); double *a = (double*)dlsym(bar, “__bar_MOD_a”); for(i = […]