#ifndef STACKALLOCATOR_H
#define STACKALLOCATOR_H

#include "Allocator.h"

class StackAllocator : public Allocator {
protected:
	void* m_start_ptr;
	std::size_t m_offset;
public:
	StackAllocator(const std::size_t totalSize);

	virtual ~StackAllocator();

	virtual void* Allocate(const std::size_t size, const short alignment = 0);

	virtual void Free(void* ptr);

	virtual void Init() override;

private:
	StackAllocator(StackAllocator &stackAllocator);

	struct AllocationHeader {
		unsigned short padding;
	};

};

#endif /* STACKALLOCATOR_H */
#ifndef STACKALLOCATOR_H
#define STACKALLOCATOR_H

#include "Allocator.h"

class StackAllocator : public Allocator {
protected:
	void* m_start_ptr;
	std::size_t m_offset;
public:
	StackAllocator(const std::size_t totalSize);

	virtual ~StackAllocator();

	virtual void* Allocate(const std::size_t size, const short alignment = 0);

	virtual void Free(const std::size_t size);

	virtual void Init() override;

private:
	StackAllocator(StackAllocator &stackAllocator);

	struct AllocationHeader {
		char padding;
	};

};

#endif /* STACKALLOCATOR_H */
--- 
+++ 
@@ -14,7 +14,7 @@
 
 	virtual void* Allocate(const std::size_t size, const short alignment = 0);
 
-	virtual void Free(const std::size_t size);
+	virtual void Free(void* ptr);
 
 	virtual void Init() override;
 
@@ -22,7 +22,7 @@
 	StackAllocator(StackAllocator &stackAllocator);
 
 	struct AllocationHeader {
-		char padding;
+		unsigned short padding;
 	};
 
 };
Change allocation header member padding type from char to unsigned short
