小编hol*_*321的帖子

堆栈溢出可视化C++,可能是数组大小?

据我所知,这不是由无限递归引起的.

该程序使用较小的数组(它是一个音频编辑器)正常运行.现在我增加了功能以允许更大的阵列(最多5分钟的音频,26460000个16位数据~50mb).

由于增加了数组的大小,我在一个特定的函数上收到堆栈溢出错误,它应该通过向后将数组写入新数组来反转输入文件的回放,然后覆盖原始数组.我猜测每个阵列可能高达50MB,这可能是问题所在:

//initialise temporary new array to place samples in
short signed int reverse_data[max_number_samples];  

for (i=0; i<track_samples; i++)
{  //puts data from sound_data into reverse_data backwards.
  reverse_data[(max_number_samples-1)-i]=sound_data[i];    
}

for (i=0; i<track_samples; i++)    
{     //now overwrites sound_data with the data in reverse_data
  sound_data[i]=reverse_data[i];
}
Run Code Online (Sandbox Code Playgroud)

我对C++和编程很新,并且不确定我在调试期间得到的错误是什么告诉我的.

任何帮助将不胜感激,我确信有一个简单的解决方案(我读过涉及'堆'的东西,但我不确定'堆'真的是什么).

c++ arrays stack overflow

0
推荐指数
1
解决办法
583
查看次数

标签 统计

arrays ×1

c++ ×1

overflow ×1

stack ×1