2013-09-18 2 views
2

Я написал программу на С ++, эта ошибка появилась, и я не могу найти причину. Кто-нибудь может мне помочь. Эта функция используется для удаления элемента i-го из связанного списка, даже старалась изо всех сил, но я не могу найти причину.Ожидаемый неквалифицированный идентификатор до функции «удалить»

#include <cstdio> 
#include <fstream> 

using namespace std; 

struct node 
{ 
    int value; 
    node * next; 
}; 

typedef struct node list; 

list* head = NULL; 
int list_length = 0; 

bool empty(){ 
    return (head == NULL); 
} 

void delete(int i){ 
    if(i>list_length) return; 
    if(empty()) return; 

    int count = 0; 
    list* curr = head; 
    while(curr != NULL && count < i-1){ 
     curr = curr -> next; 
     count++; 
    } 
    list* temp = curr -> next; 
    curr next = temp -> next; 
    list_length--; 
} 

int main(){ 
} 
+0

"возникла эта ошибка" - Какая ошибка? И знаете ли вы, как использовать отладчик, чтобы выяснить, где именно происходит ошибка? –

+0

Ошибка, которую я упомянул в названии вопроса. –

ответ

3

delete - зарезервированное ключевое слово в C++. Вы должны переименовать свою функцию.

1

Есть две ошибки в этом коде, вы назвали вашу функцию delete но delete является keyword в C++, то вторая проблема эта линия в функции delete:

curr next = temp -> next; 

, который выглядит, как это должно быть:

curr->next = temp -> next; 
Смежные вопросы