最初に、これを以前に見たことがある場合はお詫び申し上げます。ここや他の場所で答えを見つけようと一生懸命努力しました。
私は C を初めて使用しますが、ポインターとそれらの効果的な使用法についてまだ頭を悩ませています。
コード(簡潔にするために編集):
void getInFile(char fileName[], FILE *inFile) {
inFile = fopen(fileName, "r");
if(inFile == NULL) {
printf("Error1");
}
}
void function(FILE *inFile) {
if(inFile == NULL) {
printf("Error2");
}
}
int main(int argc, char *argv[]) {
FILE *inFile = 0;
getInFile(argv[2], inFile);
function(inFile);
}
書かれているように、プログラムを実行するとエラー2が発生します。getInFile を void から FILE* 戻り値の型に変更し、メイン メソッドに次のように変更すると、error1 が発生します。
inFile = getInFile(argv[2], inFile);
これはポインタを間違って使用している例ですか、それとも何か間違ったことをしていますか?