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 sieht

    printf("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).


Anmelden zum Antworten