[ fresh.bm @ 20.07.2009. 19:44 ] @
Kako da prenesem matricu u funkciju preko pokazivaca?

Primjer:
Imam matricu matrix[20][13]; koju sam inicijalizovao u mainu i unio u nju podatke.
trebam je prenijeti funkciji da bih izvrsio neka izracunavanja pa ih upisao u fajl,
prijavljuje mi gresku ako prenesem samo matrix kao parametra.

Code:


...

float matrix[20][13];

...

// poziv funkcije
fun(matrix);

...

// funkcija je definisana  fun(float*);


Hvala!
[ opmo @ 20.07.2009. 22:56 ] @
Ako ti je funkcija definisana sa "fun(float*)" a ne sa "fun(float **)" onda definiši tvoj pokazivač na matricu sa
Code:
float * pImeMatrice[20];


A ako je u pitanju štamparska greška pa je funkcija definisana sa "fun(float **)" onda definišeš pokazivač sa
Code:
float ** pImeMatrice;


Pre upotrebe pokazivača alociraj memorijski prostor za isti (malloc()) i dodeli mu da pokazuje na tvoju matricu sa
Code:
int brojac = 0;
for(brojac =0;brojac <20;brojac ++)
{
    pImeMatrice[brojac] = matrix[brojac];
}


Nadam se da sam ti bio od neke pomoći...nisam baš neki programer, ovoga se sećam sa faksa...
po3

[Ovu poruku je menjao opmo dana 21.07.2009. u 00:06 GMT+1]

[Ovu poruku je menjao opmo dana 21.07.2009. u 00:08 GMT+1]
[ fresh.bm @ 21.07.2009. 13:42 ] @
Hvala, pomoglo mi je.
[ Goran Arandjelovic @ 21.07.2009. 14:40 ] @
Verovatno se malo ponavljam, sem ako moraš da koristiš obične nizove i matrice, koristi std::vector. Pisaćeš mnogo čistiji kod. Ako su ti potrebni obični n-to dimenzioni nizovi, onda si recimo ovu matricu mogao da obuhvatiš strukturom:

Code:

struct Matrix
{
    float matrix[10][5];
};

void f(Matrix *m)
{
    // ...
}


[Ovu poruku je menjao Goran Arandjelovic dana 01.08.2009. u 04:34 GMT+1]