Я использую C. У меня возникают проблемы с использованием указателей для функции fscanf. Когда я пытаюсь сделать:Вопрос о указателях в fscanf
int *x;
/* ... */
fscanf(file, "%d", x[i]);
Мой компилятор дает мне предупреждение о том, «формат аргумента не является указателем» и код просто не работает (я получаю сообщение о том, «Water.exe перестал работать»). Если я заменю x на * x, он просто не компилируется ... Это просто проблема синтаксиса?
Я подозреваю, что что-то важное происходит в «...». Можете ли вы показать нам полную версию самой маленькой программы, которую вы можете сделать? Это скопировать программу, вырезать как можно больше, все еще получая ошибку. – dmckee
Также в этом случае, пожалуйста, укажите, что вы хотите сделать, слишком много «не работает». –
Оба '* x' и' x [i] 'являются типа' int', а не типа 'int *', как ожидалось, 'fscanf (file,"% d "...)'. Так что да, это принципиально синтаксическая ошибка. Предполагая, что вам выделено достаточно места, на которое указывает 'x', то есть вы хотели бы написать' fscanf (файл, "% d", & x [i]) 'или эквивалентно' fscanf (файл, "% d" х + я) '. – RBerteig