Problem ze zwalnianiem pamięci


(Segnis) #1

Siema,

Bawię się teraz dynamicznym przedzielaniem pamięci, no i coś mi nie wychodzi :confused:

Kompiluje się ładnie, ale podczas uruchamiania program się zawiesza.

#include 

#include 


int main()

{

    int * bleh;


    int i = 5;


    bleh = (int*) malloc (i+1);


    for(i=0;i<6;i++)

    {

        bleh[i]=i*i;

    }


    for(i=0;i<6;i++)

    {

        printf("%d\n",bleh[i]);

    }    


    free(bleh);

    return 0;

}

Mam vistę.

Pozdrawiam.


(Sawyer47) #2

Zasadniczo błąd polega na złym argumencie do malloc, ta funkcja przyjmuje liczbę bajtów do zaalokowania, więc powinno być malloc( SIZE * sizeof(int)) , gdzie SIZE to liczba elementów które ma mieć "tablica". Można też użyć calloc.


(Segnis) #3

Dzięki wielkie, rzeczywiście działa :wink: