Rückgabe eines pointers auf array



  • @SeppJ

    Ziemlich ernüchternd zu lesen, dass einem im Studium veraltete und zudem falsche Inhalte beigebracht werden.
    Danke für eure Lösungsansätze.
    Könnt ihr mir dann seriöse Quellen zum Lernen von sinnvollem C++ empfehlen?


  • Mod

    @Swordfish sagte in Rückgabe eines pointers auf array:

    Wie terminierst Du ein Array of int in C? ernstgemeint.
    Ich glaube ich würde INT_MIN dafür wegwerfen. Fairerweise.

    Bitte auf höherem Niveau mitdenken. Es geht nicht darum, dass der String terminiert ist, sondern darum, wie strcat grundlegend funktioniert und vor allem, was nicht seine Aufgabe ist und was es deswegen nicht tut. Es nimmt Information entgegen, welche Daten aneinander gehängt werden, und es nimmt Information entgegen, wo diese hin sollen. Es ist macht kein Ressourcenhandling! Es gibt keine statischen Ressourcen zurück! Es macht seine eine Aufgabe und macht diese Aufgabe gut und sehr strikt nach den Regeln und best practices der Sprache C.



  • @SeppJ Ok. 1:0.


  • Mod

    @onzeq sagte in Rückgabe eines pointers auf array:

    Könnt ihr mir dann seriöse Quellen zum Lernen von sinnvollem C++ empfehlen?

    Der Standardlink:
    https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list

    Aktiv zu meiden:

    • Es sind keine guten Videotutorials bekannt.
    • Alle Bücher, wo vollständiger ('komplett', 'von A bis Z'), schneller ('in 21 Tagen', und/oder einfacher ('für Dummies') Lernerfolg versprochen wird.
    • Leider sieht es auch bezüglich der deutschen Sprache recht düster aus. Wer gut genug ist, ein tolles Buch zu schreiben, der schreibt auch auf Englisch. Entweder, um ein größeres Publikum zu erreichen, und oft auch weil sie einfach US-Amerikaner sind.


  • @SeppJ sagte in Rückgabe eines pointers auf array:

    Es macht seine eine Aufgabe und macht diese Aufgabe gut und sehr strikt nach den Regeln und best practices der Sprache C.

    Nicht wirklich, es macht den Dest String radikal platt, ob für den Source String Platz vorhanden ist oder nicht. Solche Funktionen haben den schlechten Ruf von C begründet. Nur noch gets übertrifft das.


  • Mod

    @john-0 sagte in Rückgabe eines pointers auf array:

    @SeppJ sagte in Rückgabe eines pointers auf array:

    Es macht seine eine Aufgabe und macht diese Aufgabe gut und sehr strikt nach den Regeln und best practices der Sprache C.

    Nicht wirklich, es macht den Dest String radikal platt, ob für den Source String Platz vorhanden ist oder nicht. Solche Funktionen haben den schlechten Ruf von C begründet. Nur noch gets übertrifft das.

    Es gibt halt Leute, die die Prinzipien von C verstehen, und solche, dies nicht tun. Du verwechselst auf jeden Fall "es ist nach den Prinzipien gemacht, die für C vorgesehen sind" mit "ich halte die Prinzipien von C für gut".



  • Ein bisschen off topic...
    Ich kann mich gar nicht wirklich dran erinnern, was ich im Studium in C++ gelernt habe. Ich fands nicht gut, weil wir weder was über STL noch RAII oder ähnliches gelernt haben. Aber das war bestimmt auch nicht so grausam schlecht.
    Eine Vorlesung war wohl ziemlich oberflächliche Grundlagen... Hauptsächlich Klassen und Objektorientierung, vermutlich ziemlich schlecht, aber es kam zumindest Liskovsches Substitutionsprinzip zur Sprache. Sonst kann ich mich nicht an viel erinnern. Weiß gar nicht, ob wir irgendwelche Aufgaben hatten. Wenn, dann hab ich die ignoriert. Das ist wohl zielführender.
    Und eine andere Vorlesung dann später, da gings mehr um Templates, partielle Spezialisierungen usw... Immer noch kein idiomatisches C++, aber etwas anspruchsvoller und wieder kein hässlicher Quatsch, wie ich das hier im Forum ständig sehe.



  • @SeppJ sagte in Rückgabe eines pointers auf array:

    Es gibt halt Leute, die die Prinzipien von C verstehen, und solche, dies nicht tun. Du verwechselst auf jeden Fall "es ist nach den Prinzipien gemacht, die für C vorgesehen sind" mit "ich halte die Prinzipien von C für gut".

    Ich will es mal so formulieren. Es gibt K&R C, da passt strcat und gets gut dazu, und es gibt ein späteres C das eben eine ganz andere Stil der C APIs pflegt. K&R C ist nicht unbedingt das, was man aktuell noch vermitteln sollte. (Und genau aus dieser Philosophie entsprang diese Übungsaufgabe.) Ein Beispiel dafür was ich meine: MySQL hat eine query function (mysql_query) und PostgreSQL hat eine query function (PQexecParams). Die von PostgreSQL lässt sich typischer und SQL Injection sicher verwenden, bei der von MySQL muss man auf stored procedures (und die gab es früher gar nicht) ausweichen bzw. beten, dass das Escaping funktioniert. Also wo verstehe ich das Prinzip von C nicht, wenn ich der Meinung bin, dass die MySQL query function sch**** ist? Man sieht ja, wie man es hätte besser machen können, und bei PostgreSQL gab's diese Funktion auch nicht von Anfang an.



  • @john-0 @Mechanics Nicht jeder fucking thread braucht eine fucking Grundsatzdiskussion. C ist toll.



  • @Swordfish sagte in Rückgabe eines pointers auf array:

    @john-0 @Mechanics Nicht jeder fucking thread braucht eine fucking Grundsatzdiskussion. C ist toll.

    Nicht jeder Beitrag der dir nicht passt, muss von dir kommentiert werden, und wieder lässt du den Proll heraushängen.


Anmelden zum Antworten