Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: lỗi bộ nhớ lạp trinh game đua xe

  1. #1
    Ngày gia nhập
    09 2017
    Bài viết
    4

    Mặc định lỗi bộ nhớ lạp trinh game đua xe

    mình có bắt chước lập trinh game dua xe trên mạng , nó bị lỗi Exception thrown at 0x003F2A15 in duaxe.exe: 0xC0000005: Access violation writing location 0x00170002.̣ //minh đã đánh dấu
    các bạn có thể chỉ mình cách khắc phục

    #include<stdio.h>
    #include<Windows.h>
    #include<conio.h>
    #include<time.h>
    #include<stdlib.h>
    #define consoleWidth 80
    #define consoleHeigh 25
    #define roadWidth 25


    void gotoxy(short x, short y)
    {
    HANDLE hConsoleOutput;
    COORD Cursor_an_Pos = { x,y };
    hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(hConsoleOutput, Cursor_an_Pos);
    }


    struct HinhDang
    {
    char a[3][3];
    };


    struct ToaDo

    {
    int x, y;
    };
    struct Xe
    {
    ToaDo td;
    HinhDang hd;
    };
    struct VatCan
    {
    ToaDo td;
    HinhDang hd;
    };
    void KhoiTao(Xe &xe,VatCan &vc)
    {
    #define phd xe.hd.a
    xe.td.y = consoleHeigh - 2;
    xe.td.x = roadWidth / 2;
    phd[0][0] = phd[0][2] = phd[2][0] = phd[2][2] = 'o';
    phd[0][1] = '^';
    phd[1][0] = phd[1][2] = '|';
    phd[2][1] = '_';
    phd[1][1] = ' ';

    #define pc vc.hd.a
    vc.td.x =2+rand() % (roadWidth - 4);
    vc.td.y = -1;
    for (int i = 0; i < 3; i++)
    for (int j = 0; j < 3; i++)

    pc[i][j] = 173; //ĐÂY LÀ CHỖ BỊ LỖI
    }


    void HienThi(Xe xe,VatCan vc)
    {
    system("cls");
    for (int i = 0; i < consoleHeigh; i++)
    printf("&c\n", 179);


    for (int i = 0; i < consoleHeigh; i++)
    {
    gotoxy(roadWidth, i);
    putchar(179);
    }

    for(int kDong=-1;kDong<=1;kDong++)
    for (int kCot = -1; kCot <= 1; kCot++)
    {
    int x = kCot + xe.td.x;
    int y = kDong + xe.td.y;
    gotoxy(x, y);
    putchar(xe.hd.a[kDong+1][kCot+1]);
    }


    for (int kDong = -1; kDong <= 1; kDong++)
    for (int kCot = -1; kCot <= 1; kCot++)
    {
    int x = kCot + vc.td.x;
    int y = kDong + vc.td.y;
    if (y >= 0&& y<consoleHeigh)
    {
    gotoxy(x, y);
    putchar(vc.hd.a[kDong + 1][kCot + 1]);
    }
    }
    }

    void DieuKhien(Xe &xe)
    {
    if (_kbhit())
    {
    int key = _getch();
    if (key == 'A' || key == 'a'&& xe.td.x > 2)
    xe.td.x--;
    else if (key == 'D' || key == 'd'&&xe.td.x < roadWidth - 3)
    xe.td.x++;

    }
    }
    int main()
    {
    srand(time(NULL));
    Xe xe;
    VatCan vc;
    KhoiTao(xe,vc);// CHỖ NÀY NỮA
    while (1)
    {
    HienThi(xe,vc);

    DieuKhien(xe);

    Sleep(200);

    }
    return 0;
    }

  2. #2
    Ngày gia nhập
    02 2014
    Nơi ở
    TP.HCM
    Bài viết
    867

    for (int i = 0; i < 3; i++)
    for (int j = 0; j < 3; i++) // Sửa lại thành j++ xem có hết lỗi không

    pc[i][j] = 173; //ĐÂY LÀ CHỖ BỊ LỖI

  3. #3
    Ngày gia nhập
    09 2017
    Bài viết
    4

    thank bạn................

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn