我正在为此代码分割故障

I am getting segmentation fault for this code?

本文关键字:代码 分割 故障      更新时间:2023-10-16

i具有m*3尺寸的2D矢量,其中第一个col:下范围:下col:second col:thix col:valut.value。n尺寸n(m

void build_tree(long long int *tree,long long int index,long long int s,long long int e)
{
    if(s==e)
    {
        tree[index]=0;
        return;
    }
    if(s>e)
        return;
    long long int mid=(s+e)/2;
    build_tree(tree,2*index,s,mid);
    build_tree(tree,2*index+1,s,mid);
    tree[index]=max(tree[2*index],tree[2*index+1]);
    return;
}
void update_range(long long int *tree,long long int index,long long int s,long long int e,long long int lower,long long int upper,int v)
{
  if(s>upper || e<lower)
  {
      return;
  }
  if(s==e && s>=lower && e<=upper)
  {
      tree[index]=tree[index]+v;
      return;
  }
  if(s>=e)
    return;
 long long int mid=(s+e)/2;
 update_range(tree,2*index,s,mid,lower,upper,v);
 update_range(tree,2*index+1,mid+1,e,lower,upper,v);
 tree[index]=max(tree[2*index],tree[2*index+1]);
 return;
}
long arrayManipulation(int n, vector<vector<int>> queries) {
 /*int a[10000000];
   // vector<int>a;
    for(int i=0;i<n;i++)
        a[i]=0;*/
    long long int *tree=new long long int(4*n+1);
    build_tree(tree,1,0,n-1);
    for(int i=0;i<queries.size();i++)
    {
        update_range(tree,1,0,n-1,queries[i][0]-1,queries[i][1]-1,queries[i][2]);
    }
    return tree[1];
}

用于输入n = 10000000,M = 100000我正在遇到细分错误,我尝试了长时间的int而不是int,但是它仍然给我分割错误。

预期输出很长。

您没有显示MCVE,您应该。

没有一个人,很难确切说明发生了什么,但是我怀疑问题来自该代码(当前已注释(:

int a[10000000];

这个数组有多大?在典型的系统上,它长40,000,000个字节。在典型的Linux系统上,堆栈仅限于8Mib,该堆栈比数组的大小小,从而导致堆栈溢出。因此,您的问题是重复的。