Kezdőoldal » Számítástechnika » Programozás » Hogy tudom felszabadítani a...

Hogy tudom felszabadítani a memóriát c-ben?

Figyelt kérdés

Lekellett foglalni helyet egy structurának, úgy hogy bemeneti paraméterként egy függvény kap egy méretet és lefoglalja a helyet.


#include<stdio.h>

#include<stdlib.h>


#define KERESZTNEV_HOSSZ 20


typedef struct versenyzo

{

int rajtszam;

char keresztnev[KERESZTNEV_HOSSZ + 1];

int teljesites;

}Versenyzo;


Versenyzo* lefoglal(int meret)

{

return (Versenyzo*)malloc(sizeof(Versenyzo) * meret);

}


int main()

{

int meret;


printf("Kerek egy szamot:\n");

scanf("%d", &meret);

lefoglal(meret);


return 0;

}


Na de ezt hogy kellene felszabadítani?



2014. dec. 7. 23:15
 1/4 anonim ***** válasza:
100%

Mivel semmire nem használod a visszatérési értéket, nem mented el a pointert, így felszabadítani se tudod.


Versenyzo *v = lefoglal(meret); //foglalás


//itt azt csinálsz v-vel, amit akarsz


free(v); //felszabadítás

2014. dec. 7. 23:29
Hasznos számodra ez a válasz?
 2/4 A kérdező kommentje:
Ok köszi ez működik.
2014. dec. 7. 23:37
 3/4 anonim ***** válasza:
felszabadit(lefoglal(meret));
2014. dec. 8. 01:27
Hasznos számodra ez a válasz?
 4/4 anonim ***** válasza:
A #3-as is jó, csak így nehéz vele bármi hasznosat csinálni. :)
2014. dec. 9. 08:14
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!