Ошибка Thread 1: EXC_BAD_ACCESS (code=1, address=0x0) Xcode c++

#include <iostream>
#include <string>
#include <vector>

using namespace std;

string mat1(string s) {
    string s2 = "";
    int i = 0;
    while (s[i] != ' ') {
        s2 += s[i];
        i++;
    }
    return s2;
}

string mat2(string s) {
    string s2 = "";
    int i = 0;
    while (s[i+1] != '>') {
        i++;
    }
    while (s[i] == ' ') {
        i++;
    }
    for (;i<s.size();i++) {
        s2 += s[i];
    }
    return s2;
}

int main() {
    int m;
    cin >> m;
    string s,s1,s2;
    vector <string> A,B(m);
    for (int i=0;i<m;++i) {
        cin.ignore();
        getline(cin,s);
        A[i] = mat1(s);
        B[i] = mat2(s);
    }
    getline(cin,s1);
    getline(cin,s2);
}

Есть программа, ошибку выдает после прохождения функции mat1, при присваивании A[i] значение функции.


Ответы (1 шт):

Автор решения: Harry

Вектор пустой. Добавлять надо иначе -

A.push_back(mat1(s));

Ну, или изначально чтобы было достаточно элементов в векторе -

vector <string> A(m),B(m);

Только вот mat2 у вас работать не будет... Если в строке нет символа '>' - куда вы попадете в первом же цикле?...

→ Ссылка