Gelöscht



  • ...



  • Ich sehe gerade nichts. Vielleicht solltest Du das Programm mal mit Debugger starten. Was mir allerdings auffällt ist, dass Du strcpy() benutzt. Da baust Du Dir eine Fehlerquelle ein. Benutze lieber strncpy(), übergebe die Array-Länge (also strlen(nname) und nicht strlen(name)?) mit und kümmer Dich selbst um die Nullterminierung des Strings. Vielleicht crasht Dein Programm ja sogar weil die '\0' fehlt.

    Ach, und: Ist ein "teststruct" eigentlich das gleiche wie ein "plugininfo"?



  • Wirdbald schrieb:

    Benutze lieber strncpy(), [...]

    Wieso nicht gleich C++?

    Benutz doch std::copy() . Und wenn du mit Zeichenketten arbeitest, empfehle ich dir sowieso std::string .



  • Wieso nicht gleich C++?

    Jedem Tierchen seine Pläsierchen. Wenn er C-strings doch so mag 🙂
    Er wird schon seine Gründe haben. std::string kennt schließlich wohl jeder, der mal in ein C++-Buch geguckt hat, oder?



  • Wirdbald schrieb:

    std::string kennt schließlich wohl jeder, der mal in ein C++-Buch geguckt hat, oder?

    Schön wärs. Leider sind sehr viele Bücher derart mies, dass einem "C mit Klassen" gelehrt wird.

    Und die meisten, die sich char* antun, wissen nicht über bessere Möglichkeiten Bescheid. Denn meiner Ansicht nach gibt es in C++ wenige Gründe, sich noch mit C-Dingen rumzuschlagen, wenn es doch bessere Alternativen gibt.



  • Irgendwie habe ich hier manchmal das Gefühl in der Kirche zu sitzen, wenn wieder eine der Predigten über die Bösen Ketzer kommt, welche C-Funktionen benutzen.

    Ich bin übrigens auch einer dieser Ketzer und es gibt manchmal gute Gründe für c-Funktionen. Vor allem an Schnittstellen. Oder für Spezialfälle: Z.B. Wo ist das realloc() für c++?

    Man muss eben nur die Risiken im Blick haben, die bei der Benutzung von C-Funktionen mitunter verbunden sind.


  • Administrator

    Wirdbald schrieb:

    Irgendwie habe ich hier manchmal das Gefühl in der Kirche zu sitzen, wenn wieder eine der Predigten über die Bösen Ketzer kommt, welche C-Funktionen benutzen.

    Nur um es zu sagen, C Funktionen können sehr böse sein, erst recht im Zusammenspiel mit C++. C bietet keine Typsicherheit, welche in C++ stark benötigt wird. In C hat man schnell Über- oder Unterläufe usw.

    Wirdbald schrieb:

    Ich bin übrigens auch einer dieser Ketzer und es gibt manchmal gute Gründe für c-Funktionen. Vor allem an Schnittstellen.

    Teilweise, aber auch nicht immer. Oft reicht ein std::vector für die C-Schnittstellen. C-Arrays sind grundsätzlich zu meiden in C++, ausser man will äusserst optimieren und das bitte erst, wenn ein Profiler ein Problem anzeigt.

    Wirdbald schrieb:

    Oder für Spezialfälle: Z.B. Wo ist das realloc() für c++?

    std::vector::resize <- da ist es. realloc wird in C++ nicht benötigt, gibt keinen Grund. Wenn man in C++ mit C++ programmiert, ist es kein Problem. Erst wenn man in C++ mit dem C Gedanken programmiert, dann braucht man die C-Funktionen 😉

    Wirdbald schrieb:

    Man muss eben nur die Risiken im Blick haben, die bei der Benutzung von C-Funktionen mitunter verbunden sind.

    Und weil es eigentlich zu allen C Funktionen gute und sichere C++ Alternativen gibt, erscheint es ziemlich unlogisch, dass man riskohafte C Funktionen verwenden sollte 😉

    Grüssli



  • Dravere schrieb:

    Wirdbald schrieb:

    Irgendwie habe ich hier manchmal das Gefühl in der Kirche zu sitzen, wenn wieder eine der Predigten über die Bösen Ketzer kommt, welche C-Funktionen benutzen.

    Nur um es zu sagen, C Funktionen können sehr böse sein, erst recht im Zusammenspiel mit C++. C bietet keine Typsicherheit, welche in C++ stark benötigt wird. In C hat man schnell Über- oder Unterläufe usw.

    Wirdbald schrieb:

    Ich bin übrigens auch einer dieser Ketzer und es gibt manchmal gute Gründe für c-Funktionen. Vor allem an Schnittstellen.

    Teilweise, aber auch nicht immer. Oft reicht ein std::vector für die C-Schnittstellen. C-Arrays sind grundsätzlich zu meiden in C++, ausser man will äusserst optimieren und das bitte erst, wenn ein Profiler ein Problem anzeigt.

    Wirdbald schrieb:

    Oder für Spezialfälle: Z.B. Wo ist das realloc() für c++?

    std::vector::resize <- da ist es. realloc wird in C++ nicht benötigt, gibt keinen Grund. Wenn man in C++ mit C++ programmiert, ist es kein Problem. Erst wenn man in C++ mit dem C Gedanken programmiert, dann braucht man die C-Funktionen 😉

    Wirdbald schrieb:

    Man muss eben nur die Risiken im Blick haben, die bei der Benutzung von C-Funktionen mitunter verbunden sind.

    Und weil es eigentlich zu allen C Funktionen gute und sichere C++ Alternativen gibt, erscheint es ziemlich unlogisch, dass man riskohafte C Funktionen verwenden sollte 😉

    Grüssli

    Dravere ein Troll?


Log in to reply