LINUX.ORG.RU

[ncurses] Странный сегфолт

 


0

0

И опять я донимаю вас своими вопросами...

Решил поюзать нкурсес, начал писать игрушку наподобие Космических Рейнжеров для практики. Есть окно, в котором строка для ввода команд. Так вот, хотел попробовать написать что-нибудь по команде «123» в основное окно, вроде бы реализовал, запускаю, ввожу 123 - а прога в сегфолт.

Привожу несколько кусков кода.

Злочастная функция обработки команд:

int getcmd(){
	wscanw(cmd, command);
	if (!strcmp(command=="123")){
		wprintw(maininfo, "текст");
		wrefresh(maininfo);
	}
}

Все, что относится к главному окну:

WINDOW * maininfo;

maininfo = newwin(LINES-3, COLS, 2, 0);

wborder(maininfo, ' ', ' ', ' ', '_', ' ', ' ', '_', '_');	

wprintw(maininfo, "maininfo");
wrefresh(maininfo);

Что я делаю не так? Подскажите, пожалуйста, с кодом или ссылкой на маны, если возможно.

Если что, могу выложить весь исходник. Правда я не уверен в его кривости.)


Ответ на: комментарий от Reset

>> if (!strcmp(command=="123")){

> что это такое?

видимо, макрос, локально подменяющий семантику оператора ==

anonymous
()

Уважаемый, Вам уже _ни_один_ раз советовали почитать литературу по программированию. Когда Вы себя этим уже утруждать начнёте? Ваши ошибки ( и связанные с этим вопросы ) - это что-то...

Lego_12239 ★★
()

тебе нужен патч:

+#define == ,
if (!strcmp(command=="123")){
+#undef ==

true_admin ★★★★★
()

>if (!strcmp(command=="123")){

s/==/,/

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.