Matice, problém – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Matice, problém – C / C++ – Fórum – Programujte.comMatice, problém – C / C++ – Fórum – Programujte.com

 

crAzY^
~ Moderátor
+10
Grafoman
25. 12. 2008   #1
-
0
-

zdrawím,
počítám s maticemi a mám tento problém:
mám fci na výpis matice. prototyp vypadá takto:

void VypsatMatici(int**);


a když mám:

int matice[3][4] = { {8,-1,-2,0}, {-1,7,-1,10}, {-2, -1, 9, 23}};


VypsatMatici(matice);


tak mi to hází chybu.
cannot convert `int (*)[4]' to `int**' for argument `1' to `void VypsatMatici(int**)'

dík za rady

Nahlásit jako SPAM
IP: 89.190.64.–
All you need is vision and time.
KIIV
~ Moderátor
+43
God of flame
25. 12. 2008   #2
-
0
-

ono totiz tak nejak nejde... pole ukazatelu je neco jinyho nez dvourozmerny pole...
bud cekat jako parametr int [ ][ ] ale to bude problem ze nebude presne vedet jake je ten druhej rozmer velikosti...
nebo cekat int * a jako dalsi parametry ty rozmery matice...
pripadne si udelat strukturu kde bude x, y, data * ... a ty alokovat treba i dynamicky pri vytvareni matice


pripadne udelat pred tim podle poctu radku int ** neco = malloc( sizeof(int *) * radku );

EDIT: sem si ted uvedomil ze to takhle asi jeste nepujde:
neco[0] = matice[0];
neco[1] = matice[1];

musi se predat adresa :D
neco[0] = &matice[0][0];
neco[0] = &matice[1][0]; nebo matice + velikost*1


a pak VypsatMatici( neco );
a po vypsani free(neco);


jo idealne by bylo alokovat o jeden prvek vic a prihodit tam NULL ... aby se dalo snadno poznat ze uz mas konec radku matice...
u jednotlivejch polozek tech radku uz by to bylo asi trochu tezsi

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
crAzY^
~ Moderátor
+10
Grafoman
25. 12. 2008   #3
-
0
-

To KIIV : aha, díky moc.... zase jsem o něco chytřejší... fakt díky...

Nahlásit jako SPAM
IP: 89.190.64.–
All you need is vision and time.
KIIV
~ Moderátor
+43
God of flame
25. 12. 2008   #4
-
0
-

To crAzY^ : proste kdyz mas vicerozmerny pole je to vse za sebou... mas jeden ukazatel na prvni prvek pole a zbytek se dopocitava podle tech rozmeru ktery mas pri inicializaci... tj kdyz mas int pole[12][3];
tak muzes indexovat pomoci: pole[a][b] ale muzes i pomoci pole[a*12 + b]; nebo muzes udelat i to same pomoci ukazatele cimz pole vlastne samo o sobe je: *( pole + a*12 + b) ...
akorat musis vedet cim se to nasobi...

ale pole ukazatelu je trochu jine... kazdy ukazatel muze ukazovat uplne jinam... tj ty data nejdou po sobe a nejde pak misto
ukazatele[a][b] napsat ukazatele[a*12+b] ... zaprve bys dostal jen ukazatel.. za druhe kdyz bys pretahl ten druhej rozmer ukazovalo by to na mista v pameti ktere by k tomu uz nemusely vubec patrit

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
crAzY^
~ Moderátor
+10
Grafoman
25. 12. 2008   #5
-
0
-

To KIIV : jj fajn... díky moc

Nahlásit jako SPAM
IP: 89.190.64.–
All you need is vision and time.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 23 hostů

Podobná vlákna

Matice problem — založil mochhito

Matice — založil plsicek

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý