Мне трудно определить, пуст ли узел в связанном списке или нет. Я получаю поток 1: EXC_BAD_ACCESS (код = 1, адрес = 0x34) ошибка, но она не соответствует. Есть моменты, когда он определяет, что узел пуст, но иногда при тестировании он показывает, что у него есть адрес. Я приложил изображение после попытки отладки и поставил условия, чтобы увидеть, пуст ли узел
Я пытался несколько вещей, чтобы избежать это плохой доступ, но не знаю, что делать. Возможно, это не лучшая кодировка, но любая помощь поможет
struct InstructionNode *node = new InstructionNode;
if(temp_head == NULL){
temp_head = node;
temp_tail = node;
temp = node;
node = NULL;
}
else{
temp_tail->next = node;
temp_tail = node;
}
condition_flag = 1;
Token t = lexer.GetToken();
if(t.token_type != IF)
syntax_error();
else{
node_tail->type = CJMP;
condition();
condition_flag = 0;
body();
}
if(temp!= NULL){
if(temp->next != NULL){
node_tail->next = temp; //Bad access
node_tail = temp;
temp = temp->next;
}
else{
free(temp_head);
}
}
else{
free(temp_head);
}
}
демо моего класса
class demo{
public:
demo(){
head = NULL;
tail = NULL;
node_head = NULL;
node_tail = NULL;
temp_head = NULL;
temp_tail = NULL;
temp = NULL;
}
void syntax_error();
variables *head, *tail;
struct InstructionNode *node_tail, *temp_head,*temp_tail, *temp;
Как мне решить эту проблему. Спасибо