Hỏi về lỗi Program received signal SIGSEGV, Segmentation fault khi chạy code trên CodeBlock

Chào anh chị. Hôm nay em có làm bài này mà tự nhiên nó chạy ko được :(( Debug từng bước thì mới lúc nhập vào nó đã ghi lỗi Program received signal SIGSEGV, Segmentation fault.
Xin anh chị giúp đỡ

#include <bits/stdc++.h>

using namespace std;

ifstream fi("BT.INP");
int t, n;
typedef pair <int, string> pa;
int main()
{
    fi >> t;
    string u;
    for (int i=1; i<=t; i++)
    {
        if (i>1) cout << endl;
        pa gc[1000001];
        string ten[1000001], c;
        fi >> n;
        for (int j=1; j<=n; j++)
        {
            fi >> u >> ten[j] >> c;
            u.erase(u.size()-1, 1);
            gc[i]=pa(0, u);
        }
        for (int j=1; j<=n; j++)
        {
            for (int k=0; k<ten[j].size(); k++)
            {
                if (ten[j][k]=='l') gc[i].first--;
                if (ten[j][k]=='u') gc[i].first++;
            }
        }
        sort (gc+1, gc+1+n);
        for (int i=1; i<=n; i++)
            cout << gc[i].second;
        for (int i=1; i<=30; i++)
            cout << "=";
    }
}

Mảng quá lơn thì bạn nên để là biến nằm ngoài vòng for, tốt hơn nữa thì nằm ngoài hàm

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?