DirectZ
Loading...
Searching...
No Matches
zmalloc.hpp
Go to the documentation of this file.
1#pragma once
2#include <cstring>
3namespace dz
4{
5 template<typename T>
6 T* zmalloc(size_t size, const T& value)
7 {
8 auto ptr = (T*)calloc(size, sizeof(T));
9 if (ptr == nullptr)
10 {
11 return nullptr;
12 }
13 for (size_t i = 0; i < size; i++)
14 {
15 new (ptr + i) T(value);
16 }
17 return ptr;
18 }
19 template<typename T>
20 void zfree(T* ptr, size_t size)
21 {
22 if (ptr == nullptr)
23 {
24 return;
25 }
26 for (size_t i = 0; i < size; i++)
27 {
28 ptr[i].~T();
29 }
30 free(ptr);
31 }
32}
Definition DirectZ.hpp:39
@ T
Definition D7Stream.hpp:19
void zfree(T *ptr, size_t size)
Definition zmalloc.hpp:20
T * zmalloc(size_t size, const T &value)
Definition zmalloc.hpp:6
@ i
Definition Window.hpp:170