Kezdőoldal » Számítástechnika » Programozás » Ez egy helyes memoriafoglalas...

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.
2014. dec. 15. 19:39
Hasznos számodra ez a válasz?
 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
2014. dec. 15. 21:12
Hasznos számodra ez a válasz?
 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]

2014. dec. 16. 10:25
Hasznos számodra ez a válasz?
 6/6 anonim ***** válasza:
Hé, kell oda az a for cikus a felszabadításhoz!
2014. dec. 16. 11:25
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!