Qu'est ce qui ne va pas avec mon code? (PDCURSES / getmaxyx)
-
27-09-2019 - |
Question
Il me donne une violation d'accès sur la ligne getmaxyx (deuxième ligne dans la fonction principale) et me donne également ces deux avertissements:
LINK : warning LNK4049: locally defined symbol "_stdscr" imported
LINK : warning LNK4049: locally defined symbol "_SP" imported
Oui, il est le même code que dans une autre question que je posais, il est juste que je fais plus clair. Et oui, je l'ai écrit des programmes avec PDCURSES avant sans problème.
#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;
}
La solution
Il a été longtemps que je l'ai utilisé malédictions, mais je suppose que vous devez appeler initscr()
avant toutes les autres malédictions appellent comme getmaxyx
.
En outre, vous probablement manquent également une vérification des erreurs sur le retour de initscr et le besoin d'utiliser les valeurs de retour correctement (peut-être vous devez le transmettre à d'autres méthode malédictions?).
Autres conseils
Vous devez appeler initscr
avant getmaxyx