Neuling braucht Hilfe bei dynamischer Allokation



  • Guten Tag zusammen,

    ich lerne jetzt seit ca. 8 Wochen C++ und leider fällt es mir nicht so leicht, wie ich dachte.

    Hier mein Problem:

    Gegeben ist eine Matrix mit dem Anfangswert

    Matrix = (double*) malloc (5 * sizeof(double));

    diese Matrix ist für 5 Koeffizienten einer math. Funktion

    sobald aber mehr als 5 Koeffizienten eingegeben werden soll der Platz um weiter 5 Koeffizienten erweitert werden, usw.
    Dies soll mit der Anweisung realloc getan werden.
    Nun zu meinem Problem, wenn ich z.B. 20 Koeffizienten eingeben möchte (unsigned short) soll die Matrix um den Faktor 4 erweitert werden

    realloc (Matrix, 5*4);

    Wie sieht die Schleife aus, die einen unsigned short Wert z.B. 21 immer durch 5 Teilt und dabei 4 Schleifendurchläufe zählt?

    Bitte enschuldigt meine Formulierung, aber ich betrete im Bereich Programmieren völliges Neuland.

    Vielen Dank



  • Hi, 'malloc' = C. In C++ verwendet man 'new'. Allerdings ließe sich Dein Problem evtl. besser über die Verwendung existierender Datenstrukturen lösen, speziell den Vektor.

    Schau Dir mal diesen Artikel in der C++-FAQ an:

    http://www.parashift.com/c++-faq-lite/freestore-mgmt.html#faq-16.19

    Oder, noch besser, lies die gesamte Artikelserie dazu:

    http://www.parashift.com/c++-faq-lite/freestore-mgmt.html#faq-16.


Anmelden zum Antworten