Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.81
CepbIu
12 / 12 / 0
Регистрация: 26.06.2010
Сообщений: 38
#1

Ошибка сегментирования (core dumped) - C++

07.10.2010, 17:26. Просмотров 3243. Ответов 8
Метки нет (Все метки)

собственно вот такая проблема:
при попытке помять строки местами возникает сообщение "Ошибка сегментирования (core dumped)"
строки меняются в массиве типа double
вот код
C++
1
2
3
4
5
6
7
8
for(MinValue.i;MinValue.i>=0;MinValue.i--)
    {
        for(j=0;j<n;j++){
        tmp=mas[MinValue.i][j];
        mas[MinValue.i][j]=mas[MinValue.i-1][j];
        mas[MinValue.i-1][j]=tmp;
        }
    }
программа собирается с помощью g++(OS Linux)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2010, 17:26     Ошибка сегментирования (core dumped)
Посмотрите здесь:

Segmentation fault(core dumped) - C++
#include &lt;iostream&gt; int replace1(char *ptr, char c, char m); int main() { char *ptr = &quot;cccccccc&quot;; int i =...

Segmentation fault (core dumped) - C++
Добрый вечер. При вводе любых чисел, кроме 0 - й, выводит ошибку. #include &lt;iostream&gt; void initializationArray (int S, int **a); ...

Segmentation fault (core dumped) - C++
Доброго времени суток. Задача примерно такая. Сделать структуру с данными, класс List для управления в динамике этой структурой и класс с...

Floating point exception (core dumped) - C++
Здравствуйте товарищи. Загорелся я на днях создать программу с процедурной генерацией мира. Но поскольку опыта с С++ у меня мало (раньше...

Ошибка сегментирования - C++
Добрый день, возникла проблема: Вот программа, суть из исходного файла у слов удаляется окончание 's' (если оно присутствует), плюс даны...

Ошибка сегментирования - C++
Здравствуйте! Подскажите, пожалуйста, почему программа выводит &quot;Ошибка сегментирования&quot;. #include &lt;stdlib.h&gt; #include &lt;time.h&gt; int...

C++ Ошибка сегментирования - C++
Вот листинг файла: #include &lt;fstream&gt; #include &lt;iostream&gt; #include &lt;vector&gt; using namespace std; int main() { char...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Эксперт С++
9461 / 5474 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
07.10.2010, 17:49     Ошибка сегментирования (core dumped) #2
Цитата Сообщение от CepbIu Посмотреть сообщение
mas[MinValue.i-1][j]
при i равной нулю действительно грохнется, хоть в линухе, хоть в сантехнике...
CepbIu
12 / 12 / 0
Регистрация: 26.06.2010
Сообщений: 38
08.10.2010, 03:24  [ТС]     Ошибка сегментирования (core dumped) #3
Цитата Сообщение от easybudda Посмотреть сообщение
при i равной нулю действительно грохнется, хоть в линухе, хоть в сантехнике...
это я понимаю
easybudda
Эксперт С++
9461 / 5474 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
08.10.2010, 10:03     Ошибка сегментирования (core dumped) #4
Цитата Сообщение от CepbIu Посмотреть сообщение
это я понимаю
Тогда что собственно удивляет?
Цитата Сообщение от CepbIu Посмотреть сообщение
for(MinValue.i;MinValue.i>=0;MinValue.i--)
На последней итерации в этом цикле и падает.
CepbIu
12 / 12 / 0
Регистрация: 26.06.2010
Сообщений: 38
09.10.2010, 12:26  [ТС]     Ошибка сегментирования (core dumped) #5
Цитата Сообщение от easybudda Посмотреть сообщение
Тогда что собственно удивляет?

На последней итерации в этом цикле и падает.
я понимаю где он падает
я не понимаю почему?
easybudda
Эксперт С++
9461 / 5474 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
09.10.2010, 13:59     Ошибка сегментирования (core dumped) #6
Цитата Сообщение от CepbIu Посмотреть сообщение
mas[MinValue.i][j]=mas[MinValue.i-1][j];
первый же проход при i = 0, j = 0
C++
1
mas[0][0] = mas[-1][0];
то бишь строка в памяти должна начинаться с адреса mas + 0xffffffff на 32-битных системах. Вот Вам и ошибка сегментации. В отладчике посмотреть не пробовали?
CepbIu
12 / 12 / 0
Регистрация: 26.06.2010
Сообщений: 38
09.10.2010, 14:12  [ТС]     Ошибка сегментирования (core dumped) #7
Цитата Сообщение от easybudda Посмотреть сообщение
первый же проход при i = 0, j = 0
C++
1
mas[0][0] = mas[-1][0];
то бишь строка в памяти должна начинаться с адреса mas + 0xffffffff на 32-битных системах. Вот Вам и ошибка сегментации. В отладчике посмотреть не пробовали?
то что вы сказали не выполняется
компиляция происходит без проблем, следовательно нет и лога
StUser
11 / 11 / 1
Регистрация: 09.10.2010
Сообщений: 23
09.10.2010, 14:35     Ошибка сегментирования (core dumped) #8
Цитата Сообщение от easybudda Посмотреть сообщение
то бишь строка в памяти должна начинаться с адреса mas + 0xffffffff на 32-битных системах. Вот Вам и ошибка сегментации. В отладчике посмотреть не пробовали?
Не совсем так. Отрицательные индексы вполне допустимы:
C++
1
2
3
4
5
6
7
8
#include <cstdio>
 
int main()
{ 
 int a[]={0,1,2,3,4,5,6};
 int *b=a+3;
 printf("%d",b[-1]);
}
То есть, обращение происходит именно к mas-1. А так как mas, похоже, указывает на начало выделенной для массива области памяти, то происходит попытка обращения к предыдущему не зарезервированному сегменту памяти, отсюда и ошибка.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2010, 17:23     Ошибка сегментирования (core dumped)
Еще ссылки по теме:

ошибка сегментирования - C++
При запуске скомпилированной (gcc) программы выскакивает ошибка сегментирования, а при запуске ее же в дебагере (gdb) -- program exited...

Ошибка сегментирования - C++
Написал я быдлокодик, вроде компилируется даже. Но при запуске под Linux'ом вылетает ошибка сегментирования, не могу понять откуда она. ...

Ошибка сегментирования - C++
#include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;unistd.h&gt; #include &lt;fcntl.h&gt; #include &lt;string.h&gt; using...

Ошибка сегментирования - C++
Здравствуйте. Здесь представлена программа, единственное назначение которой промоделировать поведение другой более сложной программы. ...

Ошибка сегментирования. - C++
Всем доброго времени суток! Помогите пожалуйста разобраться в чем дело, пишу программу( суть найти путь в дереве, но думаю это не будет...


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

Или воспользуйтесь поиском по форуму:
easybudda
Эксперт С++
9461 / 5474 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
09.10.2010, 17:23     Ошибка сегментирования (core dumped) #9
Цитата Сообщение от StUser Посмотреть сообщение
Не совсем так. Отрицательные индексы вполне допустимы:
ну да, так правильнее.
Yandex
Объявления
09.10.2010, 17:23     Ошибка сегментирования (core dumped)
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru