Проблемы с односвязными списками с функцией удаления и сортировкой через strcmp C / C ++

Для меня самым простым решением будет сохранение значения, когда счетчик равен максимальному. Поэтому достаточно одной строки:

df[df['count'] == df.groupby(['Mt'])['count'].transform(max)]
0
задан selbie 23 March 2019 в 01:09
поделиться

1 ответ

Это ваша структура:

struct rec
{
    char *id;
    char firstname[15];
    char lastname[15];
    struct rec *next;
};

Вот как вы распределили память для новой записи:

MyNewRec = new rec;
MyNewRec->id = new char[10];

И вот как вы ее освободили.

Участники
        delete[] first->id;
        delete[] first->firstname;
        delete[] first->lastname;

firstname и lastname не являются указателями, которые вы выделили. Это фиксированные массивы, которые были выделены, когда rec был выделен через new. Или, другими словами, если вы этого не сделали new, то вы этого не сделаете delete.

Удалите эти две строки:

        delete[] first->firstname;
        delete[] first->lastname;

У меня нет времени на отладку остальной части кода, но я просто скажу это. Следующая строка выглядит странно и неправильно:

comp = strcmp(MyNewRec->lastname, (first->lastname - 1));
comp2 = strcmp(MyNewRec->lastname, (last->lastname - 1));

Я не понимаю, что такое -1. Но мне пора бежать ...

0
ответ дан selbie 23 March 2019 в 01:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: