ANSI C-ben hogy foglalunk 2 dimenziós dinamikus tömböt?
Figyelt kérdés
Elméletben tudom, hogy egy dimenziós dinamikus tömb, aminek minden eleme egy dimenziós dinamikus tömbre mutat (ugye pointerekből áll), csak a megvalósítással vannak gondok... Vizsgára kéne, de nem találok róla anyagot, és gugli sem adott ki olyat, amiből felfoghatnám... Ha tudtok jó oktatóanyagokat, amikben benne van - akár letölthetők, linkeljetek, légyszi!2010. dec. 14. 20:42
1/5 anonim válasza:
/* milyen tömböt akarsz te? */
#include <stdio.h>
int **tomb;
int a, b;
void create(int n, int m){
int i, j;
tomb = (int*)malloc(sizeof(int*)*n);
for(i=0;i<n;i++)
tomb[i] = (int)malloc(sizeof(int)*m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
tomb[i][j] = 0;
a=n;
b=m;
}
void modify(int i, int j, int x){
if(i<a&&i>-1&&j<b&&j>-1)
tomb[i][j] = x;
}
void tombprint(){
int i,j;
for(i=0;i<a;i++){
for(j=0;j<b;j++)
printf("%d ",tomb[i][j]);
printf("\n");
}
}
void tombfree(){
int i;
for(i=0;i<a;i++)
free(tomb[i]);
free(tomb);
}
int main(){
create(2,5);
modify(1,4,7);
tombprint();
tombfree();
return 0;
}
2/5 A kérdező kommentje:
A foglalás és a feltöltés volt az, ami nem volt tiszta, onnét megvan, hogy utána egyszerű tömbként kezeljük, de ugye addig el is kéne jutni ^^. Köszi a választ, nagyjából felfogtam, zöld kéz ment.
2010. dec. 14. 23:48
3/5 anonim válasza:
Az első válaszoló azt elírta, hogy csak int*-ra illetve int-re kasztolja a malloc visszatérési értékét, int** és int* kell helyettük, rendre.
4/5 anonim válasza:
Valamint kimaradt az elejéről egy:
#include <stdlib.h>
5/5 A kérdező kommentje:
Köszi a válaszokat! Szorítsatok, még 1 óra :)
2010. dec. 15. 14:59
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!