Mam ogólną implementację listy powiązanej ze strukturą węzła zawierającą void * do danych i strukturę listy zawierającą odniesienie do head. Teraz tutaj jest mój problem, węzeł na połączonej liście może zawierać odwołanie do innej połączonej listy poprzez jego pustkę *. Powoduje to wycieki pamięci, gdy uwalniam większą listę zawierającą mniejsze listy. Zastanawiam się, czy istnieje sposób sprawdzenia, czy void * wskazuje na inną listę, więc podążam za nią i uwalniam to samo lub do danych.Powiązana lista zawierająca inne powiązane listy i bezpłatne
Czy mogę dodać klucz do początku mojej struktury magiczną liczbą, którą mogę sprawdzić, usuwając pustkę * i stwierdzając, że jest to lista?
EDYCJA: Dzwoniący nie wstawiają mniejszych list, które są wstawiane przez moje funkcje Nie chcę, aby wywołujący zajmował się zwalnianiem wielu list tylko tych, na których trzymają wskaźnik.
chciałbym opuścić uwolnienie części danych do użytkownika, więc s/powinien wiedzieć jak 'free' danych wskazanych przez każdego elementu. Zadaniem połączonej listy jest po prostu połączenie wszystkich tych wskaźników danych. – Peyman