我有以下代码:
void click(int x, int y, zbar_window_t *window, ZBarGtk *self) {
char* response = handle_click_events(x, y, window);
printf("RESPONSE + %s\n", response);
printf("%c\n", response[0]);
if (response[0] == "0") { //CRASHES HERE
printf("inside \n");
printf("%s\n", response++);
g_signal_emit(self, self->enumACTIVE, 0, -1, response++);
}
else {
g_signal_emit(self, self->enumACTIVE, 0, -1, response++);
}
}
它继续在规定的行上崩溃。
答案 0 :(得分:5)
替换它:
if(response[0] == "0")
使用:
if(response[0] == '0')
"0"
是一个字符串,'0'
是一个字符。您不应使用==
比较字符串。
此外,您应在此声明后检查response
是否为NULL
:
char* response = handle_click_events(x, y, window);
否则printf("%c\n", response[0]);
可能会再次崩溃。