|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.03.2012, 08:01 | #1 |
Новичок
Джуниор
Регистрация: 22.03.2012
Сообщений: 3
|
Ошибка сегментации
Здравствуйте,
дали задание написать код, который читает файл и затем записывает данные в буфер. Вроде написал, но не работает. Выяснил, что имеет место быть "ошибка сегментации". Попытки найти в Интернете дельный ответ увенчались провалом. Прошу вас помочь разобраться с кодом, ибо сам я в Си не особо силен. Код:
|
22.03.2012, 11:25 | #2 |
Пользователь
Регистрация: 26.11.2009
Сообщений: 87
|
Зачем в используете это:
Код:
Помог - жми весы
|
22.03.2012, 15:47 | #3 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
Он передаёт имя файла параметром при запуске. Ничуть, правда, не заботясь при этом о проверке длины имени...
... Автор, массив на пять метров со стека снял бы, что-ли?.. |
22.03.2012, 17:35 | #4 |
Новичок
Джуниор
Регистрация: 22.03.2012
Сообщений: 3
|
S1av0k, этот код:
Код:
Vago, так лучше будет? Код:
|
22.03.2012, 17:48 | #5 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
Ну да. Ну да... Сперва скопировали (возможно выйдя за пределы зарезервированной размерности), а потом проверяем длину!..
Гавная причина, по-прежнему, не в этом. Декларацию массива strings[USHRT_MAX][80] ЗА тело ф-ии вынеси, пожалуйста. С типами памяти разберись. Си - это почти машинный язык. Нельзя на нём программировать и ничего при этом не знать об архитектуре машины (ох, пардон, компьютера). |
23.03.2012, 04:55 | #6 |
Новичок
Джуниор
Регистрация: 22.03.2012
Сообщений: 3
|
Vago, спасибо за наводку, почитаю и постараюсь понять.
|
15.07.2012, 23:34 | #7 |
Пользователь
Регистрация: 28.06.2009
Сообщений: 84
|
Доброго времени суток!
Не хочу создавать новую тему, поэтому пишу в этой. В ощем, уже несолько дней меня занимет одна проблема, причину которой я не могу обнаружить... Итак, есть геттер класса CTTetromino (возвращает указатель на массив, TetroMap сам по себе и есть указатель на этот массив): Код:
Код:
Код:
Код:
Код:
Код:
Я просто понятия не имею, где я допустил оплошность... понятия не имею... не могу разобраться. Помогите, пожалуйста, я в тупике. |
15.07.2012, 23:51 | #8 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
покажите инициализацию массива вашего.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
16.07.2012, 11:42 | #9 |
Пользователь
Регистрация: 28.06.2009
Сообщений: 84
|
Находится в конструкторе класса CTTetromino:
Код:
Последний раз редактировалось Stilet; 18.07.2012 в 20:16. |
17.07.2012, 21:57 | #10 |
Пользователь
Регистрация: 03.07.2012
Сообщений: 14
|
Ошибка происходит из-за выхода за пределы выделенной памяти. Проверьте, соответствуют ли значения переменных TetroMapX и TetroMapY в момент обращения к памяти в цикле таковым в момент выделения памяти под массив; правильно ли работают геттеры этих переменных. Используйте отладку!
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
С++ Линейные списки. Ошибка сегментации при добавлении элемента. | litviak | Общие вопросы C/C++ | 10 | 30.10.2011 23:48 |
Ошибка в коде, ошибка в css или это проблема с совместимостью с браузерами? | ankris | HTML и CSS | 5 | 23.11.2010 16:58 |
Работа с указателями. Ошибка сегментации. | agronomchek | Помощь студентам | 1 | 24.08.2010 14:51 |
Ошибка сегментации при вызове system("PAUSE") | Lavisa | Общие вопросы C/C++ | 9 | 01.08.2009 18:14 |
Ошибка сегментации при вызове system("PAUSE") | Lavisa | Помощь студентам | 0 | 29.07.2009 17:43 |