• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Nieużytki pamięci

Cloud VPS
0 głosów
695 wizyt
pytanie zadane 17 grudnia 2015 w C i C++ przez krzakurts Obywatel (1,470 p.)
Witam. Mam problem z kwestią nieużytków pamięci. Wiem tyle, że powstają, kiedy deklarujemy tablice oraz jeśli używamy funkcji malloc. Jednak jak to dokładnie działa. Mam do tego dwa pytania. Proszę o jakąś pomoc i wyjaśnienie. :) 
  1.  Czy w main() {int *i1; i1=(int*)malloc(4); i1++;} wystepuja nieuzytki pamieci?
  2. Czy w main() {int tab[3]; *i1; i1=tab; *i1=4; i1++;} występują nieużytki pamięci?
  3.  Czy w main() {int *i1, *i2; i1=(int*)malloc(4); i2=i1++;} wystepuja nieuzytki pamieci?

Moim zdaniem w każdym z tych przypadków występują. 

1 odpowiedź

+1 głos
odpowiedź 17 grudnia 2015 przez Grzyboo Nałogowiec (28,880 p.)
wybrane 17 grudnia 2015 przez krzakurts
 
Najlepsza
nie, w drugim nie występują. Wszystko, co zaalokujesz za pomocą malloc musisz zwolnić za pomocą free. W C++ odpowiednio jest to new i delete.
komentarz 17 grudnia 2015 przez krzakurts Obywatel (1,470 p.)
Ok, dziękuję. A możesz wyjaśnić, czemu w drugim nie występują?
komentarz 17 grudnia 2015 przez adrian17 Mentor (354,700 p.)
Bo nie użyłeś malloc. Termin wycieków pamięci tyczy się tylko pamięci dynamicznie zaalokowanej.

Podobne pytania

0 głosów
1 odpowiedź 444 wizyt
pytanie zadane 25 sierpnia 2020 w C i C++ przez fortuna Początkujący (310 p.)
0 głosów
1 odpowiedź 738 wizyt
pytanie zadane 15 listopada 2017 w C i C++ przez kosttek Początkujący (450 p.)
+3 głosów
1 odpowiedź 560 wizyt
pytanie zadane 30 czerwca 2017 w C i C++ przez Madar Obywatel (1,560 p.)

93,486 zapytań

142,420 odpowiedzi

322,771 komentarzy

62,900 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...