Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define char_cast(x) static_cast<char*>(x)
- #define move_addr(x, value) static_cast<void*>((char_cast(x) + value))
- #define size_cast(x) static_cast<size_t*>(x)
- void cln_mem(void *ptr, size_t len)
- {
- constexpr size_t size = siezof(size_t); // маска по размеру разрядности. size_t имеет разный размер в зависимости от архитектуры - то что надо. constexpr не создает переменную на стеке.
- while(len > size) {
- *size_cast(ptr) = 0;
- len -= size;
- ptr = move_addr(ptr, size);
- }
- while(len)
- {
- *char_cast(ptr) = 0;
- ptr = move_addr(ptr, 1);
- len--;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement