Hỏi về lỗi Task failed with signal 11

#include <cmath>
#include <string>
#include <iostream>
#include <stack>
using namespace std;
int Point(string s[], int n)
{
    int sum=0;
    stack <int> data, extra;
    for(int i=0; i<n; i++)
    {
        if(isdigit(s[i][0]))
        {
            data.push(stoi(s[i]));
        }
        if(s[i][0]=='C')
        {
            data.pop();
        }
        if(s[i][0]=='D')
        {
            data.push(2*data.top());
        }
        if(s[i][0]=='+')
        {
            extra.push(2*data.top());
            data.pop();
            data.push(data.top());
        }
    }
    while(!data.empty())
    {
        sum+=data.top();
        data.pop();
    }
    while(!extra.empty())
    {
        sum+=extra.top();
        extra.pop();
    }
    return sum;
}

int main()
{
    int n; cin >> n;
    string s[n];
    for(int i=0; i<n; i++) cin >> s[i];
    cout << Point(s, n);
}

// Mọi người cho mình hỏi nguyên nhân code bị lỗi đó. 
// Mình chạy mấy test vẫn đúng nhưng nộp bài một vài case nó trả về mã lỗi như thế. 
// Mình không hiểu do đâu

Signal 11 là Segmentation fault.

Bạn xem ở đâu đó có truy cập ngoài mảng không, hay có chỗ nào đó pop stack mà stack rỗng không.

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