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

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

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

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

07.10.2010, 17:26. Просмотров 3256. Ответов 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)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2010, 17:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка сегментирования (core dumped) (C++):

Ошибка в коде (Ошибка сегментирования (core dumped) - C++
Добрый день. Подскажите пожалуйста, где ошибка в коде? char ch; string s; while ((ch = cin.get()) != '0' ) ...

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

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

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 =...

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

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

8
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,813
07.10.2010, 17:49 #2
Цитата Сообщение от CepbIu Посмотреть сообщение
mas[MinValue.i-1][j]
при i равной нулю действительно грохнется, хоть в линухе, хоть в сантехнике...
0
CepbIu
12 / 12 / 0
Регистрация: 26.06.2010
Сообщений: 38
08.10.2010, 03:24  [ТС] #3
Цитата Сообщение от easybudda Посмотреть сообщение
при i равной нулю действительно грохнется, хоть в линухе, хоть в сантехнике...
это я понимаю
0
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,813
08.10.2010, 10:03 #4
Цитата Сообщение от CepbIu Посмотреть сообщение
это я понимаю
Тогда что собственно удивляет?
Цитата Сообщение от CepbIu Посмотреть сообщение
for(MinValue.i;MinValue.i>=0;MinValue.i--)
На последней итерации в этом цикле и падает.
0
CepbIu
12 / 12 / 0
Регистрация: 26.06.2010
Сообщений: 38
09.10.2010, 12:26  [ТС] #5
Цитата Сообщение от easybudda Посмотреть сообщение
Тогда что собственно удивляет?

На последней итерации в этом цикле и падает.
я понимаю где он падает
я не понимаю почему?
0
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,813
09.10.2010, 13:59 #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-битных системах. Вот Вам и ошибка сегментации. В отладчике посмотреть не пробовали?
0
CepbIu
12 / 12 / 0
Регистрация: 26.06.2010
Сообщений: 38
09.10.2010, 14:12  [ТС] #7
Цитата Сообщение от easybudda Посмотреть сообщение
первый же проход при i = 0, j = 0
C++
1
mas[0][0] = mas[-1][0];
то бишь строка в памяти должна начинаться с адреса mas + 0xffffffff на 32-битных системах. Вот Вам и ошибка сегментации. В отладчике посмотреть не пробовали?
то что вы сказали не выполняется
компиляция происходит без проблем, следовательно нет и лога
0
StUser
11 / 11 / 1
Регистрация: 09.10.2010
Сообщений: 23
09.10.2010, 14:35 #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, похоже, указывает на начало выделенной для массива области памяти, то происходит попытка обращения к предыдущему не зарезервированному сегменту памяти, отсюда и ошибка.
0
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,813
09.10.2010, 17:23 #9
Цитата Сообщение от StUser Посмотреть сообщение
Не совсем так. Отрицательные индексы вполне допустимы:
ну да, так правильнее.
0
09.10.2010, 17:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2010, 17:23
Привет! Вот еще темы с ответами:

Ошибка сегментирования - 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++
При запуске скомпилированной (gcc) программы выскакивает ошибка сегментирования, а при запуске ее же в дебагере (gdb) -- program exited...

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

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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