Кстати, в си не обязательно делать явное приведение указателей типа void*.
Также вместо sprintf лучше использовать strcpy
board *leaderboard=(board *)malloc(sizeof(board));
...
leaderboard=(board *)realloc(leaderboard, sizeof(leaderboard)+sizeof(board));
now_play=sizeof(leaderboard)/sizeof(board)-1;
sprintf(leaderboard[now_play].nickname,"%s",nickname);
Через Console.WriteLine постоянно выводить команду из списка, при этом очищая строку в которую помещается команда
При этом отлавливать нажатие Enter и если она нажата, вызывать метод исполняющий команду
Только как очищать строку в которую помещается команда?