memset in C++14
-
Was ist das typsichere Analogon von memset in C++14? std::fill?
-
Warum brauchst du es? Es ist durchaus moeglich, dass in deinem Fall auch ein Initializer den Job tut, wenn du bspw. den Speicher ausnullen willst.
-
Ich will ein
uintmax_t buf = new uintmax_t[size];
mit 0en füllen. Wie mache ich das in C++14?
-
buf=vector<uintmax_t>(size, 0)
-
Knappe Antwort:
std::fill( buf, buf + size, 0 );
Ausführliche Antwort mit Frage:
Brauchst du wirklich den rohen Zeiger, der den Speicherbereich besitzt? Kannst du das nicht über einenstd::vector<int>
und einem Zeiger auf den Datenbereich lösen?void func() { std::vector<int> v( size, 0 ); some_other_func( v.data(), v.size() ); }
-
__asm { xor al,al lea di,buffer mov cx,256 cld rep stosb }
-
DocShoe schrieb:
Knappe Antwort:
std::fill( buf, buf + size, 0 );
Ne.
uintmax_t buf = new uintmax_t[size]{};
Oder
uintmax_t buf[size]{};
Oder vector. Wozu das
fill
?
-
Du wirst natürlich meistens Recht haben.
Aber [klugscheiss, als ob du es selbst nicht auch wüsstest] es kann ja sein dass er es nicht bei der Initialisierung braucht sondern "zwischendurch" [/]