czy da się ustawić memset, żeby ustawiał powiedzmy co 4 komórki pamięci, lub 4 naraz? Chcę wypełnić tablicę jedynkami, i okazuje się że memset(arr, 1, sizeof(int)* size); to nie jest to czego szukam
@RedveKoronny: Mówiąc bardziej precyzyjnie czemu tak szybki jest memset.
std::memset may be optimized away (under the as-if rules) if the object modified by this function is not accessed again for the rest of its lifetime (e.g. gcc bug 8537).
@Malkof: sprawdzałem używając std::chrono, ile czasu zajęło przekopiowanie komórka po komórce, i ile zajął memcpy (źle napisałem wyżej, kopiowałem tablice memcpy, ale chcę się pobawić memsetem)
@RedveKoronny: Dlatego, że kompilator to zoptymalizował i nie wykonał żadnej operacji xD Poza tym tak jak ci mówiłem, pchasz się w kłopoty, strict aliasing rule itd i jest to bezużyteczne.
@RedveKoronny: nie no, jasne, lepiej wiedzieć niż nie wiedzieć i zrobić niż nie zrobić. Pytanie tylko, czy człowiek się nie zapędza czasem tym w kozi róg. Sam nie jestem fanem zbytniego rozpasania obecnego software'u, bo hehe teraz kompy szybkie, ale skrajny perfekcjonizm też bywa szkodliwy.
czy da się ustawić memset, żeby ustawiał powiedzmy co 4 komórki pamięci, lub 4 naraz?
Chcę wypełnić tablicę jedynkami, i okazuje się że
memset(arr, 1, sizeof(int)* size);
to nie jest to czego szukam
Po co chcesz to robić memsetem?
std::memset may be optimized away (under the as-if rules) if the object modified by this function is not accessed again for the rest of its lifetime (e.g. gcc bug 8537).
Poza tym tak jak ci mówiłem, pchasz się w kłopoty, strict aliasing rule itd i jest to bezużyteczne.
Chociaż akurat memcpy jak sprawdzałem jest lepszy ponad 100 krotnie