Ошибка повторного вызова scanf: access violation - C (СИ)
Формулировка задачи:
Здравствуйте, написал небольшую программу(принцип работы не рассказываю, т.к. ошибка синтаксическая) на C. Проблема вот в чем - на и выдает access violation(полный текст ошибки: Unhandled exception at 0x10296551 (msvcr90d.dll) in 2.exe: 0xC0000005: Access violation writing location 0x00000000).
По типам данных все проверено - ввожу правильно - в %d - целые числа, в %s - строки. Если в scanf передавать строковые переменные с операцией взятия адреса(& как обычно в scanf делается), то получится масло масляное, т.к. тип char * - указатель на область памяти, т.е. по сути адрес. Но где еще может быть подвох ума не приложу.
Буду благодарен за любую помощь.
Полный листинг:
втором
scanf после ввода данных и нажатия enter ms visual studio 2008 переключается в файлinput.c
на строку*(char *)pointer = (char)ch;
#include <stdio.h> #include <conio.h> #include <string.h> int main() { int oldbookresult=0, n=0, year=0, pagenum=0, i=0; char * name={0}, * nameresult={0}, *pname={0}; scanf("%d", &n); for(i=1; i<=n; i++) { scanf("%s %d %d %s", pname, &year, &pagenum, name); if( (year<1980) && (pagenum>=300) ) { oldbookresult++; if(strlen(name) > strlen(nameresult)) nameresult=name; } } printf("\nresult: %d %s", oldbookresult, nameresult); getch(); return 0; }
Решение задачи: «Ошибка повторного вызова scanf: access violation»
textual
Листинг программы
char * name[размер_массива]={0};//и т.д.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д