Это правильный синтаксис для передачи указателя файла по ссылке? - PullRequest
0 голосов
/ 12 июля 2010

Это правильный синтаксис для передачи указателя файла по ссылке?

Вызов функции: printNew(&fpt);

printNew(FILE **fpt)
{        
   //change to fpt in here kept after function exits?
}

Ответы [ 2 ]

5 голосов
/ 12 июля 2010

Нет. Правильный синтаксис:

void printNew(FILE *&fpt)
{        
   //change to fpt in here kept after function exits?
}

Ваш код изменит только локальный указатель на указатель ФАЙЛА . В вашем коде вызывающий видит только изменения на *fpt. Если вы измените его на вышеприведенный, все передается по ссылке, и изменения продвигаются как задумано. Соответствующий аргумент передается как обычно

printNew(fpt);
2 голосов
/ 12 июля 2010

Мне было бы интересно, что вы собираетесь делать с этим указателем файла - обычные вещи, которые вы делаете с открытым указателем, это вызывать такие функции, как fgets () и закрывать его с помощью fclose (), ни одна из которых не требует ссылка.

...