In dynamische Felder schreiben
-
Hallo erstmal, ich bin sozusagen newbie, sowohl hier im Forum als auch beim Programmieren. Deshalb hoffe ich, dass der Artikel überhaupt hier richtig ist.
Ich bin dabei(muss) ein Programm in C schreiben, dass beliebige Matrizen miteinander multipliziert.
Mein Problem ist einerseits der Umgang mit dynamischen Feldern und andererseits die Zuweisung der Werte.
Ich habe ein Feld m[][]; bei dem ich noch nicht weiß wie groß es wird.
Dies soll durch eine Eingabe festgelgt werden die ungefähr so aus siehtprintf("Anzahl der Zeilen für die %i Matrix:", anzahl); scanf("%i",&groesse[][i]); printf("Anzahl der Spalten für die %i Matrix:", anzahl); scanf("%i",&groesse[i][]);
Dieser Code funktioniert natürlich nicht und dass ist mein Problem.
Kann mir vielleicht jemand einen Tip geben?Gruß
Johann.S
-
Du bist nicht ganz richtig. Hier gehts um C#, daß is nicht direkt C und solche Sachen, wie Du sie machen willst, macht man in C# etwas anders (ich meine einfacher...). Aber nun gut.
Prinzipiell mußt Du folgendes machen: zuerst läßt Du Dir in eine Variable (nennen wir sie
mit scanf den Wert eingeben. Dann das gleiche für eine andere Variable (nennen wir sie Y). Dann kannst Du einen Speicherblock belegen, der X * Y Werte aufnehmen kann. Wieviel Bytes an Speicher für dieses Array dafür benötigt werden, hängt davon ab, was groesse[][] für einen Datentyp beherbergt (ein char, int, etc.). Dann kannst Du dem Array groesse die Adresse des zuvor belegten Speicherblocks zuweisen und schon kannst Du z.B. auf groesse[0][7] zugreifen (wenn das array so groß sein sollte).