【问题标题】:Error when running the same program repeatedly in Turbo C using DosBox in Windows7 64bit在 Windows 7 64 位中使用 DosBox 在 Turbo C 中重复运行同一程序时出错
【发布时间】:2012-05-22 12:41:39
【问题描述】:

我正在尝试在我的 Windows 7 64 位中使用 Turbo C 和 DosBox (DosBox 0.74)。

该程序在第一次运行时运行良好。它编译成功,没有错误,也完美执行。

当我尝试重复运行相同的程序时,程序似乎会产生奇怪的输出。因此,同样运行良好的程序现在会产生错误输出,尽管它仍然可以成功编译。

以下是根据顶点数将多边形顶点放置在空间中的程序。在它的第一次运行中,它会产生完全预期的输出,但当我重复它时,它会产生完全错误的输出。顶点放置在完全随机的位置。

我怀疑这是否与记忆有关。当我尝试使用不同的模拟器时也重复了类似的错误!

更新 1: 我刚刚尝试使用 Mac OSX,但同样的错误正在重复。

#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>

int main()
{
    int gd=DETECT,gm,count,i,x[100],y[100],r=100;
    initgraph(&gd,&gm,"c:\\tc\\");
    printf("Enter the number of cordinates:");
    scanf("%d",&count);
    printf("Entered count :%d",count);
    for(i=0;i<count;i++)
    {
        x[i]=r*cos(2*3.14*(i+1)/count)+200;
        y[i]=r*sin(2*3.14*(i+1)/count)+200;
        circle(x[i],y[i],5);
    }
    getch();
    return 0;
}

【问题讨论】:

  • Turbo C 的奇怪行为是“正常的”。使用更好的编译器。
  • 我认为变量包含一些垃圾值。你应该适当地提供内存并初始化它。
  • @KingsIndian 不幸的是我现在必须坚持使用 Turbo C!
  • @vikky 我正在打印变量值并且它打印正确。
  • 如果您输入的计数大于 100,您的程序将写入超出 xy 数组的末尾。

标签: c windows-7 dosbox bgi turbo-c


【解决方案1】:

更改文件 dosbox-0.74.conf 中的一项配置

来自 核心=自动

到 核心=正常

重新打开dosbox,测试一下你的程序,肯定可以正常运行!完成!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-16
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 2012-02-09
    • 2011-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多