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:
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
2/4 A kérdező kommentje:
Ok köszi ez működik.
2014. dec. 7. 23:37
4/4 anonim válasza:
A #3-as is jó, csak így nehéz vele bármi hasznosat csinálni. :)
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!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!