С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 05.06.2020
Сообщений: 15
1

Segmentation fault (core dumped)

05.06.2020, 14:54. Показов 1416. Ответов 6

Author24 — интернет-сервис помощи студентам
Есть простенькая программа в которой пользователь вводит количество элементов и эти элементы. Программа сначала выводит эти элементы в родном порядке дополняя каждый элемент до 5ти символов пробелами, а потом так-же выводит эти элементы в обратном порядке. Проблема в том, что компилятор выдают ошибку Segmentation fault (core dumped). В программе используется вектор, думаю проблема из-за него, но саму проблему не нахожу. Помогите, пожалуйста.
Main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include "msv.h"
 
using namespace std;
 
int main()
{
    int z;
    cin>>z;
    msv arr1{z};
    arr1.mas1(z);
    arr1.mas2(z);
}
msv.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
#include "msv.h"
#include <iomanip>
#include <vector>
 
using namespace std;
 
msv::msv(int z)
    {
        vector <int> array;
        for (int i=0;i<z-2;i++)     
        {
            cin>>msv::array[i];
        }
    }
void msv::mas1(int z)
    {
    
        cout<<"N = "<<z<<endl;
        for (int h=0;h<z-2;h++)
        {
            cout << setfill(' ') << setw(5) << msv::array[h];
        }
        
        cout<<endl;
    };  
void msv::mas2(int z)
    {
        for (int h=z-2;h>=0;h--)
        {
            cout << setfill(' ') << setw(5) << msv::array[h];
        }       
    };
msv.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#ifndef msv_h
#define msv_h
#include <vector>
 
using namespace std;
 
class msv
{
    public:
    int z;
    vector <int> array;
    msv(int z1);
    void mas1(int z);
    void mas2(int z);
};
#endif
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.06.2020, 14:54
Ответы с готовыми решениями:

Segmentation fault (core dumped)
Добрый день. Подскажите, при перемножении матриц более чем 600х600, появляется ошибка Segmentation...

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

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

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

6
2128 / 1211 / 503
Регистрация: 11.10.2018
Сообщений: 6,110
05.06.2020, 15:04 2
Цитата Сообщение от Piksel_man231 Посмотреть сообщение
C++
1
arr1{z};
- так в конструкторе инициализация же с круглыми скобками.
0
0 / 0 / 0
Регистрация: 05.06.2020
Сообщений: 15
05.06.2020, 15:09  [ТС] 3
Так у меня же в конструкторе нет инициализации, вроде.

Добавлено через 3 минуты
Ааааа, понял, но ситуации это не помогло
0
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
05.06.2020, 15:10 4
Лучший ответ Сообщение было отмечено Piksel_man231 как решение

Решение

Цитата Сообщение от Piksel_man231 Посмотреть сообщение
Проблема в том, что компилятор выдают ошибку Segmentation fault (core dumped). В программе используется вектор, думаю проблема из-за него, но саму проблему не нахожу. Помогите, пожалуйста.
Цитата Сообщение от Piksel_man231 Посмотреть сообщение
msv::msv(int z)
    {
        vector <int> array;
        for (int i=0;i<z-2;i++)    
        {
            cin>>msv::array[i];
        }
    }
C++
1
2
3
4
5
6
7
8
9
10
msv::msv(int z)
{
    //vector <int> array;
    for (int i=0;i<z-2;i++)     
    {
        int n;
        cin >> n;
        this->array.push_back(n);
    }
}
Либо

Добавлено через 34 секунды
C++
1
2
3
4
msv::msv(int z)
: array(z)
{
    //vector <int> array;
1
0 / 0 / 0
Регистрация: 05.06.2020
Сообщений: 15
05.06.2020, 15:13  [ТС] 5
Спасибо огромное, заработало!
0
Эксперт CЭксперт С++
5118 / 4558 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
05.06.2020, 15:28 6
Piksel_man231, еще вариант:
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
#include "msv.h"
 
int main()
{
    int z;
    cin >> z;
    msv arr1{ z };
    arr1.mas1();
    arr1.mas2();
}
msv.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "msv.h"
 
msv::msv(int z)
{
    this->z = z;
    array.resize(z - 2);
    for (int i = 0;i < z - 2;i++)
    {
        cin >> array[i];
    }
}
void msv::mas1()
{
 
    cout << "N = " << z << endl;
    for (int h = 0;h < z - 2;h++)
    {
        cout << setw(5) << array[h];
    }
 
    cout << endl;
}
void msv::mas2()
{
    for (int h = z - 3;h >= 0;h--)
    {
        cout << setw(5) << array[h];
    }
}
msv.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#ifndef msv_h
#define msv_h
#include <iostream>
#include <iomanip>
#include <vector>
 
using namespace std;
 
class msv
{
public:
    int z;
    vector <int> array;
    msv(int z1);
    void mas1();
    void mas2();
};
#endif
Добавлено через 1 минуту
Только вот непонятно, почему задается z, а используется z-2 элемента?
1
0 / 0 / 0
Регистрация: 05.06.2020
Сообщений: 15
05.06.2020, 16:16  [ТС] 7
z -2 я использовал когда до вектора использовал массив и проверял не перегружаю ли я его
0
05.06.2020, 16:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.06.2020, 16:16
Помогаю со студенческими работами здесь

Ошибка: Segmentation fault (core dumped)
Вот недокод: #include &lt;bits/stdc++.h&gt; using namespace std; int main() { int ans = 0; ...

Проблема с указателями. Segmentation fault (core dumped)
не понимаю в чём проблема. вот есть лаба задание:Расположить строки по возрастанию количества...

Проблема с сохранением/загрузкой данных в/из файла и segmentation fault (core dumped)
Добрейшего вечера. При выгрузке данных из файла дата рождения почему-то выводилась не так как надо....

Объединение двух деревьев бинарного поиска ( Segmentation fault (core dumped) )
Блин, народ, сломал голову. Вроде алгоритм простенький, но не работает. Нужно объединить два...

segmentation fault
При компиляции выдает segmentation fault, подскажите, как исправить. #include &lt;iostream&gt;...

Segmentation fault :(
#include&lt;iostream&gt; #include&lt;fstream&gt; using namespace std; struct test{ int id; char name;...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru