首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >发布vs调试版本:突然出现运行时错误

发布vs调试版本:突然出现运行时错误
EN

Stack Overflow用户
提问于 2020-03-16 03:40:01
回答 1查看 35关注 0票数 0

我有一个在二维数组上执行FFT的程序。为了使用快速傅立叶变换库fftw3,我必须使用一个临时数组(称为FTtemp)来读出快速傅立叶变换的结果:它是3d的,因为它包含x&y轴加上每个(x,y)元组的实值和虚值。

从FFT数组(具有特殊变量类型)到普通数组的数据传输在调试模式下工作,但在释放模式下不工作。在发行版中,我得到以下运行时错误:访问冲突写入位置0x02913000。

从我的google搜索中,我发现发布版本的bug通常与未初始化的对象有关。这导致我将FTtemp中的每一项都显式地初始化为0.0,但是没有用。此外,我将FFt数组项打印到控制台,并显示了数字,这意味着它们也已初始化。因此,我有点想不到会不会有人比我更聪明?

下面是我正在讨论的代码片段。因为程序依赖于很多其他东西,所以我还不能重新创建一个最小的例子,但一旦我得到相同的错误,我就会添加一个。

有趣的事实:我将循环的i&j值打印到控制台进行故障排除,这是另一个(I,j) tupel,每次我运行它时它都会崩溃:例如: 49,212或116,169。我真的被这个搞糊涂了。

代码语言:javascript
运行
复制
        FTtemp = new double** [width];
        for (i = 0; i < width; i++) {
            FTtemp[i] = new double*[height];
        }
        for ( i = 0; i < width; i++)
        {
            for (j = 0; j < height; j++) {
                FTtemp[i][j] = new double[2]; 
                FTtemp[i][j][0] = 0.0;
                FTtemp[i][j][1] = 0.0;
            }
        }

        cout << "width,height: " << width << "," << height << endl;
        for (i = 0; i < width; i++)
        {
            for (j = 0; j < height; j++) {
                /*
                cout << "access to out: " << out[indexFFT(i, j)][0] << endl;
                cout << "access to FTtemp: " << FTtemp[i][j][1] << endl;
                */
                cout << "i,j is: " << i << "," << j << endl;
                FTtemp[i][j][1] = out[indexFFT(i, j)][0]; <--------- error occours here
                FTtemp[i][j][2] = out[indexFFT(i, j)][1];
            }
        }

谢谢你的考虑。万事如意,蓝色

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-16 03:45:27

这一行有一个错误:

代码语言:javascript
运行
复制
FTtemp[i][j][2] = out[indexFFT(i, j)][1];

注意,在前面的代码中,FTtemp[i][j]被初始化为new double[2],这意味着FTtemp[i][j][2]是越界写入。

这里可能还有其他问题--也许indexFFT(i, j)给出了一个糟糕的索引?--但是如果没有看到out是如何初始化的,或者indexFFT是如何工作的,我们就不能确定。

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60696881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档