diff --git a/src/main.rs b/src/main.rs
index 1bf52aee6b86a55616cca99b50f765a8c5452bf5..fb3a7bd9a7f5c8b95d02768a05273fd75a7daecf 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -76,11 +76,16 @@ where
         for (index, value) in free.iter_mut().enumerate() {
             *value = index + 1;
         }
+        *unsafe { self.init.get_mut_unchecked() } = true;
+
         println!("init : free {:?}", unsafe { self.free.get_mut_unchecked() });
     }
 
     fn dealloc(&self, index: usize) {
         unsafe {
+            if !*self.init.get_mut_unchecked() {
+                panic!();
+            }
             self.free.get_mut_unchecked()[index] = *self.head.get_mut_unchecked();
             *self.head.get_mut_unchecked() = index;
         }
@@ -89,6 +94,9 @@ where
 
     fn alloc(&'static self) -> Result<Box<T, S>, ()> {
         unsafe {
+            if !*self.init.get_mut_unchecked() {
+                panic!();
+            }
             let index = *self.head.get_mut_unchecked();
             println!("index {}", self.head.get_mut_unchecked());
             println!("head {}", self.head.get_mut_unchecked());