Kada jednom alociras memoriju za matricu, nema potrebe da ponovo alociras kao sto si to uradio u funkciji mnozenje. A druga stvar ti mnozis a[0][0] * a[0][0] i smjestas rezultat u promenljivu 'rez' zatim mnozis a[0][1] * a[0][1] i gazis ono sto se nalazi u rez i stavljas ovu novu vrijednost. I treca stvar, makni free(a) iz funkcije mnozenje, koliko vidim vec si postavio to u main funkciji.
Sad ne znam kako zelis da pomnozis matricu, da li sva polja i sve to stavis u jednu promenljivu, ili treba da napravis novu matricu velicine n*n koja ce sadrzati vrijednost A*A, ako je ovo prvo stavi rez += a[i][j] a ako je drugo, napravi drugu matricu b, alociraj memoriju za nju, i onda napises ovo b[i][j] = a[i][j] * a[i][j]. I na kraju te funkcije stavis return b. Ali sada posto funkcija vrace matricu, onda tip funkcije mora biti int**.
Jedino nisam siguran za malloc funkciju, da li se ovako alocira memorija za matricu, posto ja radim u C++, tako da koristim operator new, pa moram da dodam for petlju koja ce da alocira memoriju za svaki red u matrici.
|