Ошибка при повторном запуске одной и той же программы в Turbo C с использованием DosBox в Windows7 64bit

Я пытаюсь использовать Turbo C с DosBox (DosBox 0.74) в моей 64-разрядной версии Windows 7.

Программа отлично работает с первого запуска. Он успешно компилируется без ошибок, а также безупречно выполняется.

Когда я пытаюсь повторить запуск одной и той же программы, кажется, что программы выдают странный результат. Таким образом, та же самая программа, которая работала отлично, теперь выдает ошибку, хотя все еще успешно компилируется.

Ниже приведена программа, которая размещает вершины многоугольника в пространстве в зависимости от количества вершин. При первых запусках он выдает совершенно ожидаемый результат, но, как я повторяю, он выдает совершенно неправильный результат. Вершины размещаются в совершенно случайных местах.

Сомневаюсь, что это связано с памятью. Когда я попытался использовать другой эмулятор, такая же ошибка повторилась!

Обновление 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;
}

person qwerty123    schedule 22.05.2012    source источник
comment
Странное поведение является нормальным для Turbo C. Используйте лучший компилятор.   -  person P.P    schedule 22.05.2012
comment
Я думаю, что переменная содержит некоторое значение мусора. Вы должны правильно предоставить память и инициализировать ее.   -  person vikky    schedule 22.05.2012
comment
@KingsIndian К сожалению, сейчас мне приходится придерживаться Turbo C!   -  person qwerty123    schedule 22.05.2012
comment
@vikky Я печатаю значение переменной, и оно печатается правильно.   -  person qwerty123    schedule 22.05.2012
comment
Если вы введете число больше 100, ваша программа будет писать за пределы массивов x и y.   -  person user786653    schedule 22.05.2012


Ответы (1)


изменить одну конфигурацию в файле dosbox-0.74.conf

из ядра = авто

ядро = нормальное

снова откройте dosbox и протестируйте свою программу, она точно будет работать правильно! Сделанный!

person tewa    schedule 09.11.2016