numerikzeug schrieb:
Also ich kann problemlos auch den 1600 Wert belegen, wenn ich 1600 deklarariet habe, bzw. mit cout << T_out[1][1600] ausgeben, aber T_out[0][1600]=T_out[1][1600]+dichte_dt/1300* qterme_out[1][1600]; und rowshift() funktionieren nicht.
C++ ist kein Ponyhof. Du wirst nicht an die Hand genommen und vor deinen eigenen Fehlern beschützt, andererseits wirst du auch nirgendwo zurück gehalten, weil der Babysitter erst prüfen muss, ob alles in Ordnung ist. Die Indizes in einem Array mit 1600 Elementen laufen von 0 bis 1599. Basta! Wenn du darüber hinaus zugreifst, kann alles passieren. Kann unter anderem auch mal zufällig funktionieren. Ist aber trotzdem falsch und es ist deine Verantwortung als C++-Programmierer, alle diese Regeln zu kennen und dich an diese zu halten (oder die Konsequenzen zu tragen, wenn du es nicht tust).
Was dir die Sache einfacher machen dürfte: Nutz keine rohen Arrays! Nutz kein new! Das ist nicht, wie man C++ programmiert. Nutz die vorgefertigten Container der STL, die diese Konzepte kapseln! Durch die Kapselung ist es dann sogar möglich, einen Babysitter einzuschalten, der alle Zugriffe prüft und diesen später wieder rauszuwerfen, wenn man sicher ist, dass das Kind auch alleine zurecht kommt.