我需要创建这个功能:
void lpLoadFileFunc(int (*loadFile)(char *filename, FILE **file))
要做到这一点,我必须先创建这个功能:
int loadFile (char *filename, FILE **file))
此功能应上传文件并在加载成功时返回。
但我不明白为什么要使用双指针。
你能帮忙吗?
答案 0 :(得分:1)
C是值的传递。将变量传递给函数时,它会被复制,并且更改该副本不会更改原始变量。但是,您可以传递变量的地址,该函数将获得指向该变量的指针,这使您可以更改它。不要忘记指针仍然是一个变量,如果你想改变指针,你需要一个双指针。
void Test( int value , int* pointer )
{
value = 1 ;
*pointer = 1 ;
}
int one = 0 ;
int two = 0 ;
Test( one , &two ) ;
printf( "%d %d\n" , one , two ) ;
如您所见,one
没有改变。