Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

ANSI C - Zwalnianie pamięci tablicy wskaźników na tablice zawartej w strukturze

jowyma 07 Sty 2015 19:56 639 4
  • #1 07 Sty 2015 19:56
    jowyma
    Poziom 22  

    Proszę o pomoc bo nie umiem sobie poradzić z poprawnym zwalnianiem pamięci alokowanej wcześniej na tablicę wskaźników wskazujących na tablice, zawartych w strukturze. Logicznym mi się wydawało usuwać pamięć w odwrotnej kolejności do tego jak była alokowana, ale o ile przy kompilacji błędów nie ma żadnych to przy uruchomieniu już są. Oto komunikat:

    Cytat:
    *** Error in `./jubilerostateczny2.exe': double free or corruption (out): 0x00000000014cf050 ***
    Przerwane (core dumped)


    A oto program. Program generujący błędy jest na samym dole.
    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    0 4
  • Pomocny post
    #2 07 Sty 2015 20:48
    witoldwitoldowicz
    Poziom 28  

    Indeksy w C zaczynaja sie od zera, czyli 0 - count-1!

    0
  • #3 07 Sty 2015 21:01
    jowyma
    Poziom 22  

    witoldwitoldowicz napisał:
    Indeksy w C zaczynaja sie od zera, czyli 0 - count-1!


    Count to jest liczba wpisywana przez użytkownika w innej funkcji a w funkcji czyszczącej pamięć jest zczytywana ze struktury. Nie jest ona nigdy równa zeru.

    0
  • Pomocny post
    #4 07 Sty 2015 21:09
    witoldwitoldowicz
    Poziom 28  

    Alokujesz count float* a wkładasz do 1 - count, czyli o 1 za daleko.

    Dodano po 3 [minuty]:

    Zmien na for(í=0;í<count...

    0
  • #5 07 Sty 2015 21:11
    jowyma
    Poziom 22  

    Jesteś WIELKI. Dziękuję!!!

    0