Matrixdimensionen durch Übergabeparameter erst festlegen
-
Hallo!
Ich habe folgendes Problem:
In dem unteren Programmauszug soll die Größe N als Parameter übergeben werden, und nicht im Code schon festgelegt werden. Wie kann man das realisieren?
Danke!#define N 10 double A[N][N]; int main(int argc, char *argv[]) { A = init(A); print(A); } void print(double m[N][N]) { ... //Matrix wird ausgegeben } void init(double m[N][N], int kind) { ... //Matrix wird gefüllt }
-
Wenn dein Compiler schon C99 komplett kann _und_ es dir reicht wenn die Größe der Matrix nur einmal beim Programmstart festgelegt wird (und danach nicht geändert werden muss), dann kannst du "Variable Length Arrays" (VLA) benutzen. Dazu einfach bei der Deklaration der Matrix Variablen statt Konstanten nehmen.
Ansonsten musst du das mit malloc()/calloc() machen. Dazu gibt es die Forensuche, mit welcher man so nette Beispiele von unserem freundlichen Moderator AJ findet