1
int *ptr = malloc~
while (fscanf(fp, "%d", ptr++) != EOF)
;
ptrに十分なメモリが割り当てられていると仮定すると、 * ptrに格納されている値は、関数がEOFをエンコードするときに何を表しますか? Visual Studioでデバッグツールを使用してみましたが、* ptrの値が-33686019であることがわかりました このガベージ値ですか?またはEOF?scanf(fscanf)がEOFに遭遇したときに、引数変数に格納される値は何ですか?
未初期化値はガベージ値です。また、最初のアドレスを保存する必要があります。 – BLUEPIXY
未指定。 **最初の**入力引数が割り当てられる前にエラーが発生した場合のみ、EOFが返されます。 – StoryTeller
たとえば、ファイルの最初の文字が数字でなかった場合、なぜ['scanf'(またはその兄弟)(http://en.cppreference.com/w/c/io/fscanf))ストア*何か*? 'EOF'(またはゼロ!)を受け取った場合、有効な値が格納されていると仮定できません。 –