[C] Zwalnianie zarezerwowanej pamięci

glockv96
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 30 maja 2016, o 17:02
Płeć: Mężczyzna
Lokalizacja: Wrocław

[C] Zwalnianie zarezerwowanej pamięci

Post autor: glockv96 »

Witam. Stworzyłem ten oto programik ale nie jestem pewien czy jest on napisany w pełni poprawnie mianowicie chodzi mi o zwalnianie zarezerwowanej pamięci.

Kod: Zaznacz cały

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define M 10
void wyswietlanie(int **macierz,int a,int b,int wysokosc,int szerokosc)
{
    for(a=0;a<wysokosc;a++)
    {
        for(b=0;b<szerokosc;b++)
        {
        printf("%d ",macierz[a][b]);

        }
        printf("
");
    }
    printf("

");
}


int main(int argc, char ** argv)
{
if(argc<3)
{
    printf("PODAJ WSZYSTKIE ARGUMENTY WEJSCIOWE");
}
if(argc>=3)
{

int a,b,szerokosc1,wysokosc1,szerokosc2,wysokosc2,**mac,**mact,i;
srand(time(NULL));
wysokosc1=atoi(argv[1]);
szerokosc1=atoi(argv[2]);
wysokosc2=szerokosc1;
szerokosc2=wysokosc1;
mac = (int **) malloc(wysokosc1*sizeof(int));
for(a=0;a<wysokosc1;a++)
{
    mac[a] = (int *) malloc(szerokosc1*sizeof(int));
}

mact = (int **) malloc(wysokosc2*sizeof(int));
for(a=0;a<wysokosc2;a++)
{
    mact[a] = (int *) malloc(szerokosc2*sizeof(int));
}
for(a=0;a<wysokosc1;a++)
    for(b=0;b<szerokosc1;b++)
        mac[a][b]=rand() %M;

//transponowanie macierzy
for(a=0;a<szerokosc1;a++)
    {
    for(b=0;b<wysokosc1;b++)
        mact[a][b]=mac[b][a];
    }
//WYSWIETLANIE
printf("MACIERZ WYGENEROWANA
");
wyswietlanie(mac,a,b,wysokosc1,szerokosc1);
printf("MACIERZ TRANSPONOWANA
");
wyswietlanie(mact,a,b,wysokosc2,szerokosc2);

for(i = 0; i < wysokosc1; i++)
   free(mac[i]);
free(mac);
for(i = 0; i < wysokosc2; i++)
   free(mact[i]);
free(mact);

getchar();
}
return 0;
}
Czy napisany kod zwalniający jest poprawny?
kalwi
Użytkownik
Użytkownik
Posty: 1931
Rejestracja: 29 maja 2009, o 11:58
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 145 razy
Pomógł: 320 razy

[C] Zwalnianie zarezerwowanej pamięci

Post autor: kalwi »

Jest poprawny.
glockv96
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 30 maja 2016, o 17:02
Płeć: Mężczyzna
Lokalizacja: Wrocław

[C] Zwalnianie zarezerwowanej pamięci

Post autor: glockv96 »

Byłby ktoś w stanie również pomóc w stworzeniu funkcji void zwalniającej pamięć (chodzi o dane wejściowe, w jaki sposób powinny być wprowadzone do funkcji )?
kalwi
Użytkownik
Użytkownik
Posty: 1931
Rejestracja: 29 maja 2009, o 11:58
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 145 razy
Pomógł: 320 razy

[C] Zwalnianie zarezerwowanej pamięci

Post autor: kalwi »

tu masz odpowiedź: 407920.htm
ODPOWIEDZ