Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под *nix > C++ на Unix
Перезагрузить страницу Как исправить ошибку scanf segmentation fault
Закрытая тема
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Leon Leon вне форума
Member
 
Сообщений: 262
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.10.2002
По умолчанию Как исправить ошибку scanf segmentation fault - 21.09.2007, 10:43

Привет всем. Недавно пересел на линукс и теперь пришлось программировать и нарвался на вот такую ошибку
Код:
char *file;
scanf("%s",file);
Появляется segmentation fault ткните носом в ошибку
Система Debian 4.0 Etch. gcc 4.1.2 Спасибо заранее
  (#2 (permalink)) Старый
Shunix Shunix вне форума
Member
 
Сообщений: 1,355
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.06.2002
По умолчанию 21.09.2007, 10:57

segmentation fault - стандартная ошибка нарушения доступа к памяти.
Вопрос к размышлению: куда и на что указывает file с типом char* (целесообразно почитать соответствующие главы Страуструпа и/или другой литературы)?
  (#3 (permalink)) Старый
Garik Garik вне форума
Member
 
Сообщений: 6,201
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 07.06.2002
По умолчанию 21.09.2007, 11:51

man scanf ВНИМАТЕЛЬНО!
  (#4 (permalink)) Старый
Leon Leon вне форума
Member
 
Сообщений: 262
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.10.2002
По умолчанию 25.09.2007, 09:02

Я понимаю что проблема в указателе, поскольку использование отстальных функций типа gets() дают туже ошибку. Однако подобный код без проблем исполняестя под Windows.
  (#5 (permalink)) Старый
Garik Garik вне форума
Member
 
Сообщений: 6,201
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 07.06.2002
По умолчанию 25.09.2007, 11:36

Проблема в том, что тебе нужно выделить память. Читай man scanf ВНИМАТЕЛЬНО!
Ads.
  (#6 (permalink)) Старый
ssh ssh вне форума
Member
 
Сообщений: 245
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 26.12.2004
По умолчанию 25.09.2007, 14:33

Ну что мучить человека манами!

Вот так пиши:

Код:
#define MAXLENGTH 80
                            // или сколько там надо по максимуму
char file[MAXLENGTH ];
scanf("%s",file);


Цитата:
Однако подобный код без проблем исполняестя под Windows.
Винда действительно немыслимый ацтой!
  (#7 (permalink)) Старый
Dian Dian вне форума
Member
 
Сообщений: 5,243
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2004
По умолчанию 26.09.2007, 09:46

Цитата:
Я понимаю что проблема в указателе, поскольку использование отстальных функций типа gets() дают туже ошибку. Однако подобный код без проблем исполняестя под Windows.
Верно понимаешь; проблема в том, что в коде баг А то, что код работает в windows, не делает его правильнее - так что это минус винде, а не плюс коду
  (#8 (permalink)) Старый
Leon Leon вне форума
Member
 
Сообщений: 262
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.10.2002
По умолчанию 27.09.2007, 11:17

Ага понял, всем спасибо. Маны начинаю читать внимательно..... Тему можно закрыть
  (#9 (permalink)) Старый
Кошмар Кошмар вне форума
Member
 
Сообщений: 2,694
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 23.04.2005
По умолчанию 27.09.2007, 11:30

На этом форуме темы не закрываются никогда (кроме исключительных случаев).
Если у кого-то возникли вопросы или какие то мысли по поводу какого-то обсуждения - никогда не поздно их выразить - все темы открыты.
  (#10 (permalink)) Старый
Garik Garik вне форума
Member
 
Сообщений: 6,201
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Регистрация: 07.06.2002
По умолчанию 27.09.2007, 11:52

А вот и нет. Иногда они всё же закрываются.
Ads
Закрытая тема

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как исправить ошибку Лена88 Delphi 7 19.06.2011 22:16
Opera - программа совершила недопустимую ошибку, можно ли исправить ошибку? dok Любые вопросы от новичков 3 23.03.2010 12:34
Как исправить ошибку? TDG Pascal 1 04.11.2009 21:36
Ошибка Segmentation fault extira C++ на Unix 2 28.04.2009 05:31
Segmentation fault в CGI бинарное компилирование Vladimir the Red Sunny Общие вопросы программирования 2 07.08.2008 18:06
помогите исправить ошибку IIITAK Prolog 5 27.06.2008 16:11
С4244 как исправить эту ошибку 12345 С/С++ 8 07.07.2006 22:01
Как передать структуру по сети или Segmentation fault vain С/С++ 6 19.01.2006 00:20
Socket_error как исправить ошибку Tsubasa Сетевое программирование 1 01.06.2005 22:16
Проблемы из-за указателя *temp segmentation fault tariavo millach C++ на Unix 2 03.01.2005 01:29
System.pas как исправить ошибку Начинающий Delphi 3 10.06.2004 22:27
Apache выдает "segmentation fault" XKiller PHP 0 15.02.2003 15:22



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов