Anfängerfrage: calloc in c++ ?
-
Hallo,
über calloc alloziiere ich ja ein array und habe dann auch lauter Nuller im array - gibt es das für c++ auch irgendwie? Einfach nur mit new gehts ja net...
bin natürlich schon fleißig auf der suche unter goolge etc...
-
new und std::fill schafft abhilfe
-
danke aber ist das genausoschnell? wie calloc ?
-
Mati schrieb:
danke aber ist das genausoschnell? wie calloc ?
Nein, wahrscheinlich nicht. "new + std::fill" könnte auf einigen Plattformen u.U. sogar schneller sein (wenn memset/calloc z.B. inline als "REP STOSB" implementiert ist), auf anderen langsamer, wenn memset/calloc hoch optimiert ist (z.B. mittels MMX/SIMD befehlen), und manche Compiler werden sowieso aus der std::fill Schleife nen memset machen (wenn sie gut inlinen und optimieren können).
Allerdings zwischen "calloc" und "new + memset" sollte kaum ein Unterschied sein. "memset" ist zwar auch nicht sehr "C++ig", aber für doubles OK, und du kannst "new" verwenden. Würde ich der "calloc" Version vorziehen.
-
danke - klappt so wunderbar
