Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/37: Рейтинг темы: голосов - 37, средняя оценка - 4.51
2 / 2 / 0
Регистрация: 17.07.2010
Сообщений: 13

Ошибка сегментации

28.07.2010, 14:43. Показов 7783. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, написал программу, запускаю- Windows пишет: "обнаружена ошибка. Приложение будет закрыто". Ошибка в функции:
C++ Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
bool prov(int re[2][2]){
     int i=0,j=0;
     bool r;
     if ((re[i][j]==re[i+1][j+1])and(re[i][j]==re[i+2][j+2])){r=true;};
     
     if ((re[i][j]==re[i-1][j+1])and(re[i][j]==re[i-2][j+2])){r=true;};
     
     for(i=0;i<=3;i++){
     if ((re[i][0]==re[i][1])and(re[i][1]==re[i][2])){r=true;};};
     
     for(i=0;i<=3;i++){
     if ((re[0][i]==re[1][i])and(re[1][i]==re[2][i])){r=true;};};
     
    
     return r;};
Dev-C++ пишет: "Ваша программа вызвала нарушение доступа (ошибку сегментации)".

В чем дело и что такое сегментация?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.07.2010, 14:43
Ответы с готовыми решениями:

Ошибка сегментации.
Здравствуйте, дорогие форумчане! Тут такое дело, есть программа, код приведен ниже, там есть некоторый массив D. После компиляции...

Ошибка сегментации
Здравствуйте! Написал классы матрица и вектор с длинными комплексными числами. Длинное комплексное число это число, действительная и мнимая...

Ошибка Сегментации
Всем привет! При выполнении кода вылетает ошибка: &quot;Ваша программа вызвала нарушение доступа(ошибку сегментации)&quot;. Как это...

9
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
28.07.2010, 15:11
Ты вышел за границы массива. Двумерный массив re имеет размерность 2x2, поэтому обратиться к элементу re[-2][2], к примеру, будет ошибкой. И первый, и второй индексы re могут меняться только в пределах от 0 до 1
0
2 / 2 / 0
Регистрация: 17.07.2010
Сообщений: 13
28.07.2010, 16:12  [ТС]
Спасибо, но такая же ошибка даже если функция выглядит так
C++ Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
bool prov(int re[2][2]){
     int i=0,j=0;
     bool r;
        
     for(i=0;i<=2;i++){
     if ((re[i][0]==re[i][1])and(re[i][1]==re[i][2])){r=true;};};
     
     for(i=0;i<=2;i++){
     if ((re[0][i]==re[1][i])and(re[1][i]==re[2][i])){r=true;};};
     
    
     return r;};
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
28.07.2010, 16:16
Цитата Сообщение от KGotin-807 Посмотреть сообщение
C++ Скопировано
1
2
for(i=0;i<=3;i++)
    {if ((re[i][0]==re[i][1])and(re[i][1]==re[i][2])){r=true;};};
Когда счетчик i примет значение 2, то первое же выражение (re[i][0]) приведет к выходу за границы массива.

Не по теме:

А что за задача, если не секрет?

1
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
28.07.2010, 16:26
KGotin-807, нумерация элементов массивов начинается с нуля. Индекс последнего елемента массива размером n будет n - 1.
1
2 / 2 / 0
Регистрация: 17.07.2010
Сообщений: 13
28.07.2010, 16:29  [ТС]
Разве в C массив
C++ Скопировано
1
 int re[2][2];
не тоже самое, что в Pascal'е
Pascal Скопировано
1
re: array [0..2,0..2] of integer;
?

Задача-не секрет, текстовый вариант крестиков-ноликов.

Спасибо.
0
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
28.07.2010, 16:32
KGotin-807, нет, int re[n][m] в переводе на Pascal (да простит меня C++) re: array [0..n-1,0..m-1] of integer
1
Эксперт С++
 Аватар для MikeSoft
3956 / 1811 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
28.07.2010, 16:32
KGotin-807, объявление
C++ Скопировано
1
int re[2][2];
говорит о том, что будет создан двумерный массив типа int размерностью 2х2.
Нумерация полей начинается с нуля.
Поэтому, элементы, доступные для чтения/записи будут иметь индексы:
Code Скопировано
1
2
3
4
[0][0]
[0][1]
[1][0]
[1][1]
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
28.07.2010, 16:33
C++ Скопировано
1
int re[2][2];
- эта запись означает, что ты выделяешь память для двумерного массива размерностью 2х2. В Паскале это будет выглядеть так:
Pascal Скопировано
1
re: array [0..1,0..1] of integer
0
2 / 2 / 0
Регистрация: 17.07.2010
Сообщений: 13
28.07.2010, 16:34  [ТС]
Спасибо, дошло.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.07.2010, 16:34
Помогаю со студенческими работами здесь

ошибка сегментации
где может быть ошибка?

Ошибка сегментации
Зарание благодарен за помощ собственно вот мой код . он должен считывать информацию о процессе с фалйа ,а принимать на вход пид процесса ...

Ошибка сегментации
int main() { int mas; } Объясните, почему такой код привод к ошибке? (компилятор VS 2012)

ошибка сегментации
Всем привет! Я никогда не программировал, а тут решил склепать небольшую программку. Да вот только не могу понять почему выскакивает...

Ошибка сегментации
Здравствуйте. Скажите, почему так делать нельзя? class A { public: A* array; //массив A() { //Ошибка...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Обмен данными в микросервисной архитектуре
ArchitectMsa 06.04.2025
Когда разработчики начинают погружаться в мир микросервисов, они часто сталкиваются с парадоксальным правилом: "два сервиса не должны делить один источник данных". Эта мантра звучит повсюду в. . .
PostgreSQL в Kubernetes: Автоматизация обслуживания с CNPG
Mr. Docker 06.04.2025
Администраторы баз данных сталкиваются с целым рядом проблем при обслуживании PostgreSQL в Kubernetes: как обеспечить правильную репликацию данных, как настроить автоматическое переключение при. . .
Async/await в TypeScript
run.dev 06.04.2025
Асинхронное программирование — это подход к разработке программного обеспечения, при котором операции выполняются независимо друг от друга. В отличие от синхронного выполнения, где каждая последующая. . .
Многопоточность в C#: Синхронизация потоков
UnmanagedCoder 06.04.2025
Многопоточное программирование стало неотъемлемой частью разработки современных приложений на C#. С появлением многоядерных процессоров возможность выполнять несколько задач параллельно значительно. . .
TypeScript: Классы и конструкторы
run.dev 06.04.2025
TypeScript, как статически типизированный язык, построенный на основе JavaScript, привнес в веб-разработку новый уровень надежности и структурированности кода. Одним из важнейших элементов этой. . .
Многопоточное программирование: Rust против C++
golander 06.04.2025
C++ существует уже несколько десятилетий и его поддержка параллелизма постепенно наращивалась со временем. Начиная с C++11, язык получил стандартную библиотеку для работы с потоками, а в последующих. . .
std::vector в C++: от основ к оптимизации производительности
NullReferenced 05.04.2025
Для многих программистов знакомство с std::vector происходит на ранних этапах изучения языка, но между базовым пониманием и подлинным мастерством лежит огромная дистанция. Контейнер std::vector. . .
Реляционная модель и правила Кодда: фундамент современных баз данных
Codd 05.04.2025
Конец 1960-х — начало 1970-х годов был периодом глубоких трансформаций в области хранения и обработки данных. На фоне растущих потребностей бизнеса и правительственных структур существовавшие на тот. . .
Асинхронные операции в Django с Celery
py-thonny 05.04.2025
Разработчики Django часто сталкиваются с проблемой, когда пользователь нажимает кнопку отправки формы и. . . ждёт. Секунды растягиваются в минуты, терпение иссякает, а интерфейс приложения замирает. . . .
Использование кэшей CPU: Максимальная производительность в Go
golander 05.04.2025
Разработчикам хорошо известно, что эффективность кода зависит не только от алгоритмов и структур данных, но и от того, насколько удачно программа взаимодействует с железом. Среди множества факторов,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер