Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Zdravim,
narazil jsem na drobný problém.
nadefinoval jsem si nový typ
typedef int matice[10][10]
a dále funkci s návrotovou hodnotou právě jako adresa na 'matice'
matice& SCITANI(matice mat_A, matice mat_B, int s){
matice mat;
int i,j;
for (i = 0; i < s; i++){
for (j = 0; j < s; j++){
mat[i][j] = mat_A[i][j] + mat_B[i][j];
}
}
return mat;
}a následně použil tuto fci v kódu programu
matice *p_vys; p_vys = &SCITANI(mat_A, mat_B, m);
Když se snažim následně vypsat tak vypíšu pouze hodnoty [0][0], [1][0], [2][0]...
a tak se ptám co s tím?, asi bude problém někde v nějakým ukazatelu, ale v tom se moc nevyznám
předem dík
Offline
↑ voujtik:↑ voujtik:
Ahoj,
mas tam dost beznu chybu zaciatocnikov s pointermi, vracias referenciu na lokalnu premennu, to nemoze fungovat. Premennu mat definujes len lokalne pre funkciu SCITANI, hned ako skoncis vypocet v tej metode tak mat prestane existovat, a referencia ktoru si vratil nie je platna.
Riesenim je pridat tam treti vstupny parameter, predany pointerom alebo referenciou do ktoreho zapises vysledok.
A ked uz pouzivas tie referencie tak tym by sa mali predavat aj parametre mat_A a mat_B do funkcie, najlepsie ako const referencie v tomto pripade.
Offline