c - 是什么导致我的代码不确定?

标签 c compiler-construction compiler-errors

我可能在这里发疯了,但我一直在重新编译完全相同的代码,并得到不同的答案。我根本没有使用任何随机值。我严格遵守 float 和一维数组(我想最终将其移植到 CUDA)。

是否有可能在编译器方面,我的相同代码以一种使其根本无法工作的方式被重写?

我只需单击它即可运行 .exe,它运行良好,但是当我单击“编译并运行”(Dev C++ 4.9.9.2) 时,我的图像都无法正确显示。 ......虽然有时他们会这样做。

...关于我如何解决这个问题的任何见解?如果我能提供更多帮助,请告诉我。

非常感谢。

编辑: 这是代码块,如果我将其注释掉,一切都会正常运行。 (如果我把这个 block 注释掉,它是完全确定的) -这是一个电磁模拟器,如果有帮助的话:

        //***********************************************************************
    //     Update HZ in PML regions (hzx,hzy)
    //***********************************************************************

    boundaryIndex = 0;
    for (regionIndex = 1; regionIndex < NUMBEROFREGIONS; regionIndex++) {
        xStart = regionData[regionIndex].xStart;
        xStop  = regionData[regionIndex].xStop ;
        yStart = regionData[regionIndex].yStart;
        yStop  = regionData[regionIndex].yStop ;
        for (i = xStart; i < xStop; i++) {
            for (j = yStart; j < yStop; j++) {
                hzx = hz[i*xSize+j] - hzy[boundaryIndex];   // extract hzx
                hzx = dahz[i*xSize+j] * hzx + dbhz[i*xSize+j] * ( ey[i*(xSize+1)+j] - ey[(i+1)*(xSize+1)+j] );    // dahz,dbhz holds dahzx,dbhzx
                hzy[boundaryIndex] = dahzy[boundaryIndex] * hzy[boundaryIndex] + dbhzy[boundaryIndex] * ( ex[i*ySize+j+1] - ex[i*ySize+j] );
                hz[i*xSize+j] = hzx +  hzy[boundaryIndex];  // update hz
                boundaryIndex++;
            }  //jForLoop /
        }  //iForLoop /
    }  //

其中,NUMBEROFREGIONS 为常数(8),Xsize 在编译时定义(此处为 128)。

最佳答案

好吧,一些代码示例会有所帮助!但这是未初始化变量的典型症状。

您没有设置一些重要的变量(索引为 0,切换为 True 等),因此您的程序每次运行时都会选择内存中的任何值。 由于这些实际上是随机值,您每次都会得到不同的结果。

关于c - 是什么导致我的代码不确定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4222094/

相关文章:

C++ 错误 C2819 : type 'List' does not have an overloaded member 'operator ->'

c - 为什么我们在全局区域空间定义为全局变量后不能给变量赋值

c - 在程序集中存储局部变量

c - Floyd 的循环检测算法,是代码中需要的 if(slow_ptr!=NULL) 检查

c - Scanf 不等待输入

java - 从Android SIP类调用SipProfile.Builder时出现未处理的异常

c++ - 在 C++ 中接受语法

c - 可以在 GCC 中声明的静态数组的最大大小是多少?

c++ - 在任何编程语言中通常如何处理异常?

c++ - 标准 x86_64 库中的编译问题