我有共享库,我在那里进行一些数据生成/处理,并且我已经编写了一些API和应用程序来访问它们并传输数据。
/ * ** * ** * ** * **** < /强> 应用的 * ** * ** * ** / < / p>
/ * ** * ** * ** * ** 内部库 ** * ** * ** * ** * ** * * / 我试过上面的方法将数据输入到应用程序中,但数据在库内正确打印但在lib(在应用程序中)外面它没有打印任何东西...... 有些机构可以帮助我使用最好的方式来传递数据b / w libs和应用程序。 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;
}
答案 0 :(得分:4)
当C按值传递参数(包括指针)时,需要将指针的地址传递给函数,以使函数能够将指针指向不同的地址并让调用者可以看到这些更改:
char**
调用:
int genratedCamData(int CAM, char** datafirst , char **datasecond)
{
*datafirst=getCam1data();
*datasecond=malloc(100); /* sizeof(char) is guaranteed to be 1. */
}