小编Ram*_*Ram的帖子

将字符串数组从 C 返回到 Fortran

我正在尝试使用“iso_c_binding”将一个字符串数组从 C 返回到 Fortran。该程序编译,但给出一个运行时错误。我的 C 程序:

#include <stdio.h>    
void ret_array(int * numStrings, char **arr2 ) {                                
    int dim1=5;    
    char *arr1[5]={"name1","name2","name3","name4","name5"};    
    arr2 = &arr1;    
    printf("%s\n",arr2[0]);    
    printf("%s\n",arr2[1]);    
    printf("%s\n",arr2[2]);    
    printf("%s\n",arr2[3]);    
    printf("%s\n",arr2[4]);    
    numStrings = &dim1;    
    printf("%s","Ending  interface :");    
    fflush(stdout);    
 }  
Run Code Online (Sandbox Code Playgroud)

我的调用 Fortran 程序

program main
  implicit none
  CHARACTER(LEN = 255), dimension(:), allocatable:: str2
  integer(kind = 4):: istr
  call get_arr(istr, str2)
  PRINT *, str2(1)
contains
  subroutine get_arr(n, str1)
    use iso_c_binding
    implicit none
    INTEGER(KIND = 4):: n
    CHARACTER(LEN = 255), dimension(:), ALLOCATABLE:: str1
    character(kind = c_char), …
Run Code Online (Sandbox Code Playgroud)

c fortran pointers fortran-iso-c-binding

5
推荐指数
1
解决办法
92
查看次数

标签 统计

c ×1

fortran ×1

fortran-iso-c-binding ×1

pointers ×1