Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace MapAllocator
- {
- template<typename T>
- T ** allocMap(CGSize size)
- {
- T ** map = (T **)malloc(sizeof(T *) * size.width);
- for (int i = 0; i < size.width; i++)
- map[i] = (T *)calloc(sizeof(T), size.height);
- return map;
- }
- template<typename T>
- T ** allocMapAndFill(CGSize size, T value)
- {
- if (value == T(0)) return allocMap<T>(size);
- T ** map = (T **)malloc(sizeof(T *) * size.width);
- for (int i = 0; i < size.width; i++)
- {
- map[i] = (T *)malloc(sizeof(T) * size.height);
- for (int j = 0; j < size.height; j++)
- map[i][j] = value;
- }
- return map;
- }
- template<typename T>
- void deallocMap(T ** map, CGSize size)
- {
- for (int i = 0; i < size.width; i++)
- free(map[i]);
- free(map);
- }
- template<typename T>
- T ** copyMap(T ** map, CGSize size)
- {
- T ** newMap = allocMap<T>(size);
- for (int i = 0; i < size.width; i++) {
- for (int j = 0; j < size.height; j++) {
- newMap[i][j] = map[i][j];
- }
- }
- return newMap;
- }
- }
Add Comment
Please, Sign In to add comment