W
@Ichwerdennsonst sagte in Funktion die eine dreidimensionales zeiger-array zurückgibt:
Ich weiß jetzt nicht, was so schlimm ist, an c in c++, wer das nicht will, der soll mit Java oder Python programmieren.
Was aber soll denn jetzt problematisch daran sein, einen Zeiger mit static - auch wenn es überflüssig wäre - zu benutzen
Nein, umgekehrt: wer nicht lernen will, wie C und C++ genau funktionieren, was Schlüsselwörter wie static bedeuten, sollte auf eine andere Sprache zurückgreifen. Umso mehr gilt das für Personen, die auch nach einem Hinweis darauf noch immer nicht glauben, dass das ein Problem sei (man könnte ja auch mal nachschauen, was static so tut - zum Beispiel hier https://en.cppreference.com/w/cpp/language/storage_duration#Static_local_variables - es reicht schon, den ersten Absatz zu lesen).
Malloc: komplett unidiomatisch in C++. Ruft den Konstruktor nicht auf, geht - wenn überhaupt - nur für POD-Typen und eigentlich müsste man danach noch ein placement-new machen, um die Lebenszeit des Objektes zu starten (könnte sein, dass das ab C++17 oder 20 bei PODs auch standardkonform nicht mehr nötig ist und darf auch vorher funktioniert haben - aber allein dass man sich Gedanken darüber machen muss, spricht schon dagegen, dieses Konstrukt zu verwenden). In C++ verwendet man außerdem (im Regelfall) keine manuelle Speicherverwaltung, dabei kann man viel zu leicht viel zu viel falsch machen.
Und in C ist malloc zwar ok, aber erstens brauchst du keine Casts und zweitens trennt man Speichererstellung vom Befüllen (gut, gilt auch für C++). Idiomatischer Code sorgt dafür, dass du weniger falsch machst und der Code besser lesbar ist.