在共享库和应用程序之间传输数据

我有共享库,我在那里进行一些数据生成/处理,我已经编写了一些API和应用程序来访问它们并传输数据。

/ * ** * ** * ** * **** 申请 * ** * ** * ** /

char* data1; char* data2; genratedCamData(1, char* data1 , char *data2); printf(" data1 %s ",data1); printf(" data2 %s ",data2); free(data2); 

/ * ** * ** * ** * ** 内部图书馆 ** * ** * ** * ** * ** * * /

  int genratedCamData(1, char* datafirst , char *datasecond) { if(CAM==1) datafirst=getCam1data(); printf(" test at lib %s ",type); datasecond=malloc(sizeof(char) * 100); sprintf(datafirst,"%s",datasecond); return 0; } 

我尝试了上面的方法将数据获取到应用程序,但数据在库内正确打印但在lib(在应用程序中)外面它不打印任何东西……

有些人可以帮助我使用最好的方式来传递数据b / w libs和应用程序。

当C通过值传递参数(包括指针)时,需要将指针的地址 char**传递给函数,以使函数能够将指针指向不同的地址,并使调用者可以看到这些更改:

 int genratedCamData(int CAM, char** datafirst , char **datasecond) { *datafirst=getCam1data(); *datasecond=malloc(100); /* sizeof(char) is guaranteed to be 1. */ } 

调用:

 char* data1; char* data2; genratedCamData(1, &data1 , &data2);