Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2013, 11:38   #1
Evgenuych96
Пользователь
 
Регистрация: 07.10.2012
Сообщений: 37
По умолчанию Ошибка сегментирования

Здравствуйте.
В моей программе есть двумерный массив символов, размером [128]x[256].
Я очищаю его при помощи следующей функции:
Код:
void clear_matrix(void)
{
	int mnt[1];
	for(mnt[0] = 0; mnt[0] <= 127; mnt[0]++)
		for(mnt[1] = 0; mnt[1] <= 255; mnt[1]++)
			lvl.matrix[mnt[0]][mnt[1]]=' ';
}
После завершения процедуры, в которой использовалась clear_matrix(), программа аварийно завершается и выводит "Ошибку сегментирования". С чем может быть связана эта проблема?
Evgenuych96 вне форума Ответить с цитированием
Старый 17.03.2013, 12:14   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
#include <string.h>
...
memset(lvl.matrix, ' ', 32768 * sizeof(lvl.matrix[0][0]));
Вы уверены, что проблема именно в процедуре очистки (без нее программа нормально завершается)?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 17.03.2013 в 13:51.
BDA вне форума Ответить с цитированием
Старый 17.03.2013, 13:31   #3
Evgenuych96
Пользователь
 
Регистрация: 07.10.2012
Сообщений: 37
По умолчанию

Да. Я убирал функцию из кода программы, и она исполнялась без ошибок.
Сейчас попробую использовать ваш вариант.
Evgenuych96 вне форума Ответить с цитированием
Старый 17.03.2013, 13:37   #4
Evgenuych96
Пользователь
 
Регистрация: 07.10.2012
Сообщений: 37
По умолчанию

Удивительно! Функция memset() работает как швейцарские часы. Довольно странно что она не упоминалась в учебнике по С.
Благодарю за помощь.
Evgenuych96 вне форума Ответить с цитированием
Старый 17.03.2013, 13:51   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Пожалуйста.
На будущее - дописывайте свои сообщения, а не пишите несколько подряд.
Кстати, int mnt[1] - массив на 1 элемент, а не на два (сразу не заметил).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где ошибка в этом исходном коде на языке Си? Или ошибка в Excel? ArchiCurtis Помощь студентам 2 07.04.2012 14:16
Ошибка сегментирования при разборе командной строки Демик Помощь студентам 4 30.03.2012 23:01
Не работает код, вылетает ошибка сегментирования Avitella Общие вопросы C/C++ 6 21.12.2011 22:20
Ошибка сегментирования при вызове strcat Кипящий чайник Общие вопросы C/C++ 4 05.03.2011 20:49
Ошибка сегментирования Olechka555 Общие вопросы C/C++ 1 14.09.2010 08:50