无法找出出现分段错误的测试用例?

Cant figure out the testcase where I am getting segmentation fault?

我遇到了一些未知测试用例的分段错误,我无法解决它。 它适用于大多数情况。我只想知道在哪种情况下我会遇到分段错误。 该代码是为直方图中的问题最大矩形区域编写的。你可以在这里查看这个问题:https://practice.geeksforgeeks.org/problems/maximum-rectangular-area-in-a-histogram-1587115620/1#

代码如下:

 long long getMaxArea(long long arr[], int n)
    {
        int nsl[n];
        int nsr[n];
        stack<int>s;
        // nsl
        for(int i=0;i<n;i++)
        {
            if(i==0)
            {
                nsl[i]=-1;
                s.push(i);
            }
            else{
                while(!s.empty())
                {
                    if(arr[s.top()]<arr[i])
                    break;
                    s.pop();
                }
                if(s.empty())
                nsl[i]=-1;
                else
                nsl[i]=s.top();
                s.push(i);
            }
        }
        stack<int>st;
        // nsr
        for(int i=n-1;i>=0;i--)
        {
            if(i==n-1)
            {
                nsr[i]=n;
                st.push(i);
            }
            else{
                while(!st.empty())
                {
                    if(arr[st.top()]<arr[i])
                    break;
                    st.pop();
                }
                if(st.empty())
                nsr[i]=n;
                else
                nsr[i]=st.top();
                st.push(i);
            }
        }
        long long ans=0;
        for(int i=0;i<n;i++)
        ans=max(ans,arr[i]*(nsr[i]-nsl[i]-1));
        return ans;
    }

通过使用向量而不是数组解决了问题。我只是对数组使用了错误的 C++ 语法,因此使用 vector 就解决了它。