Что случилось с моим кодом? (pdcurses/getmaxyx)

Это дает мне нарушение прав доступа на getmaxyx строке (вторая строка в основной функции) и также дает мне эти два предупреждения:

LINK : warning LNK4049: locally defined symbol "_stdscr" imported
LINK : warning LNK4049: locally defined symbol "_SP" imported

Да, это - тот же код как в другом вопросе, который я задал, это просто, что я делаю это более ясным. И да, я записал программы с pdcurses прежде без проблем.

#include <time.h>
#include <curses.h>
#include "Ball.h"
#include "Paddle.h"
#include "config.h"

int main(int argc, char *argv[])
{
    int maxY, maxX;
    getmaxyx(stdscr, maxY, maxX);

    Paddle *paddleLeft = new Paddle(0, KEY_L_UP, KEY_L_DOWN);
    Paddle *paddleRight = new Paddle(maxX, KEY_R_UP, KEY_R_DOWN);
    Ball *ball = new Ball(paddleLeft, paddleRight);

    int key = 0;

    initscr();
    cbreak();
    noecho();
    curs_set(0);

    while (key != KEY_QUIT)
    {
        key = getch();
        paddleLeft->OnKeyPress(key);
        paddleRight->OnKeyPress(key);
    }

    endwin();
    return 0;
}
1
задан flarn2006 15 June 2010 в 02:25
поделиться

2 ответа

Прошло много времени с тех пор, как я использовал curses, но я бы предположил, что вам нужно вызвать initscr() перед любым другим вызовом curses, например getmaxyx.

Также, вероятно, вам не хватает проверки ошибок при возврате initscr и нужно правильно использовать возвращаемые значения (возможно, вам нужно передать их другому методу curses?).

1
ответ дан 2 September 2019 в 23:46
поделиться

Вам нужно вызвать initscr перед getmaxyx

1
ответ дан 2 September 2019 в 23:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: