Dalej•LEKCJA 22 / 22

calloc i zwalnianie pamięci

Kurs C · Wyjaśnienie, przykłady, oczekiwany wynik i ćwiczenie.

calloc przydziela pamięć i zeruje jej bajty.

Cel lekcji

Poznać zagadnienie „calloc i zwalnianie pamięci”, zrozumieć przykład i umieć zastosować podobny zapis we własnym programie.

Wyjaśnienie krok po kroku

Każdy udany przydział trzeba sparować z free(). Nie korzystaj ze wskaźnika po zwolnieniu pamięci.

Najpierw przeanalizuj kod bez uruchamiania. Zwróć uwagę, jakie dane wykorzystuje program, co z nimi robi i skąd bierze się wynik pokazany pod przykładem.

Praktyczny przykład

Gdzie zobaczysz efekt: Konsola programu C

Gdzie wkleić kod? To fragment ćwiczeniowy: instrukcje wykonawcze wstaw do main(), a deklaracje klas lub funkcji umieść w odpowiednim miejscu pliku. Uzupełnij wymagane importy i nagłówki.

int *numbers = calloc(3, sizeof *numbers);
if (numbers != NULL) {
    printf("%d\n", numbers[0]);
    free(numbers);
}

Przeczytaj kod linijka po linijce

  1. int *numbers = calloc(3, sizeof *numbers);Tworzymy lub aktualizujemy zmienną, pole albo przypisanie.
  2. if (numbers != NULL) {Sprawdzamy warunek lub wybieramy jedną z możliwości.
  3. printf("%d\n", numbers[0]);Wyświetlamy wartość, aby sprawdzić efekt działania programu.
Oczekiwany wynik / efektpo uruchomieniu przykładu
0

Jak utrwalić tę umiejętność?

Przepisz kod samodzielnie. Następnie zmień jedną wartość lub jedną instrukcję i spróbuj przewidzieć efekt. Dopiero potem uruchom zmienioną wersję. Jeśli wynik jest inny niż oczekiwany, porównaj kolejne linie.

Spróbuj samodzielnie

Zapisz wartości do przydzielonej tablicy i zwolnij pamięć.

To już koniec tej lekcji.

Jeśli rozumiesz przykład, oznacz lekcję jako ukończoną i przejdź dalej.