calloc Aequivalent



  • Hallo,
    gibt es in C++ ein Aequivalent zu 'calloc', d.h., eine Speicherzuweisung, die den Speicher gleichzeitig auf 0 setzt? Wenn nicht, gibt es einen Grund, weswegen es sowas nicht gibt?
    Danke.


  • Mod

    tim_g schrieb:

    Hallo,
    gibt es in C++ ein Aequivalent zu 'calloc', d.h., eine Speicherzuweisung, die den Speicher gleichzeitig auf 0 setzt?

    Ja, nennt sich calloc .

    Wenn nicht, gibt es einen Grund, weswegen es sowas nicht gibt?
    Danke.

    Wozu sollte man das brauchen? Will man Objekte mit 0 initialisieren, so nimmt man new mit einem entsprechenden Konstruktor (oder besser gleich einen std::vector, wenn man mehrere Objekte als Array haben will). Wenn man aus irgendeinem Grund den Konstruktor von Objekten umgehen will, macht man ohnehin low-levelige Sachen und kann daher auch gleich calloc benutzen.


  • Administrator

    SeppJ schrieb:

    Ja, nennt sich calloc .

    std::calloc , wenn man es zu genau nimmt 😃

    @tim_g,
    Für dynamische Arrays kann man in C++ sowieso gleich std::vector nehmen, da ist die Initialisierung auch schon drin. Und falls dies ein zu grosser Overhead darstellt (wieso auch immer, denn gross ist er überhaupt nicht), dann arbeitet man im Low Level Bereich und dort ist die Initialisierung zu Beginn womöglich gar nicht gewünscht. Ansonsten kann man eben auch std::calloc verwenden.

    Grüssli



  • SeppJ schrieb:

    Wenn man aus irgendeinem Grund den Konstruktor von Objekten umgehen will, macht man ohnehin low-levelige Sachen und kann daher auch gleich calloc benutzen.

    Oder einen passenden operator new gefolgt von std::fill oder memset...


Anmelden zum Antworten