4

我写了一个C++程序,出现了这个错误,我找不到原因。有谁能够帮我。此功能用于从链表中删除第 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(){
}
4

3 回答 3

10

您有一个名为 delete 的方法,但delete 是 C++ 中的关键字

于 2013-09-18T12:02:07.250 回答
3

delete是 C++ 中的保留关键字。你必须重命名你的函数。

于 2013-09-18T12:02:17.970 回答
1

这段代码有两个错误,你已经命名了你的函数delete,但delete是C++中的一个关键字,第二个问题是函数中的这一行:delete

curr next = temp -> next;

看起来应该是:

curr->next = temp -> next;
于 2013-09-18T12:05:10.413 回答