Matrix an Unterprogramm übergeben
-
Hallo,
mal eine Frage:
ich habe eine Matrix a[n][n], n soll dynamisch sein, da vom User eingegeben.
Die Matrix wird jetzt mit Werten gefüllt und soll dann an ein Unterprogramm übergeben werden.
Wie?mit
void Rechnen(a[n][n])
{/..../};und später
Rechnen(a)
geht's ja nicht.
Ich denke mir das geht sicher wesentlich eleganter, aber ich will das programm nicht groß ändern
-
Ja, als Klasse :).
Ich denke mal du musst auf jedenfall die Dimension der Matrix mit angeben und die Matrix als Pointer uebergeben.
Ich hab mir die folgende Seite nicht genau durchgelesen, aber ich glaube die koennte dir helfen

http://www.num.math.uni-goettingen.de/Lehre/Lehrmaterial/Kurse/C/2005ss/doc/matrix.htmlGruss, Martin
-
danke.
noch ne blöde frage: wieso muss man ich meine jetzt im allgemeinen den speicher wieder freigeben?
-
Wenn du ihn nicht freigibst, müllst du dir auf lange Sicht den RAM mit ungenutzten (und möglicherweise unerreichbaren) Daten zu

btw, bei uns in der FAQ gibt es auch etwas zum Thema "dynamische mehrdimensionale Arrays", was du dir ansehen könntest.
-
und die sauberste lösung ist natürlich,
die matrix in einer eigenen klasse zu kapseln,
und diese zu übergebenoder std::vector<std::vector<T> > benutzen,
was aber nicht unbedingt immer eine matrix ist