Ez egy helyes memoriafoglalas egy matrixnak?
Figyelt kérdés
2014. dec. 15. 19:19
1/6 A kérdező kommentje:
#include <stdio.h>
int main()
{
int sor, oszlop, i, j;
printf("sor = ");
scanf("%d",&sor);
printf("oszlop = ");
scanf("%d",&oszlop);
int ** tomb = (int**) malloc(sor * sizeof(int*));
for(i = 0; i < sor; i++)
{
tomb[i] = (int*) malloc(oszlop*sizeof(int));
}
for(i = 0; i < sor; i++)
{
free(tomb[i]);
}
free(tomb);
return 0;
}
2014. dec. 15. 19:21
2/6 anonim válasza:
Helyesnek helyes, a felszabadítás viszont felesleges így végezni elég a free(tomb) a végén. For ciklust inkább a struktúra tömbnél érdemes használni felszabadításkor.
3/6 A kérdező kommentje:
Ertem, koszonom a segitseget. Esetleg van mas modszer is ami ennel hatekonyabb?
2014. dec. 15. 20:10
4/6 anonim válasza:
C ben nincs c++-ban az std::vector hatékonyabb
5/6 secdeal válasza:
Más lehetőség, hogy sor- vagy oszlopfolytonosan tárolod a mátrixot, egy tömbben.
Ilyenkor csak egy tömbnek foglalsz memóriát, sor*oszlop méretben.
Használat során így tudsz hivatkozni az (i,j) elemre:
Sorfolyt.: tomb[i*oszlop + j]
Oszlopfolyt.: tomb[j*sor + i]
6/6 anonim válasza:
Hé, kell oda az a for cikus a felszabadításhoz!
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!