diff --git a/src/operator/MatMulImpl.cpp b/src/operator/MatMulImpl.cpp
index 488af17617d556ad7a9d9b73909324d67a672459..e716726886225f703e7cf482d0bfcfb9ec733948 100644
--- a/src/operator/MatMulImpl.cpp
+++ b/src/operator/MatMulImpl.cpp
@@ -59,21 +59,17 @@ void Aidge::MatMulImpl_cpu::forward()
     const std::size_t nbDims = dims0.size();
 
     // initialize strides to iterate through data because of broadcasting
-    std::size_t *stride_post0;
-    std::size_t *stride_post1;
-    std::int32_t *stride_step0;
-    std::int32_t *stride_step1;
+    std::unique_ptr<std::size_t[]> stride_post0 = std::make_unique<std::size_t[]>(nbDims - 2);
+    std::unique_ptr<std::size_t[]> stride_post1 = std::make_unique<std::size_t[]>(nbDims - 2);
+    std::unique_ptr<std::int32_t[]> stride_step0 = std::make_unique<std::int32_t[]>(nbDims - 2);
+    std::unique_ptr<std::int32_t[]> stride_step1 = std::make_unique<std::int32_t[]>(nbDims - 2);
     if (nbDims > 2) {
-        stride_post0 = new std::size_t[nbDims-2];
         stride_post0[nbDims - 3] = 1;
-        stride_post1 = new std::size_t[nbDims-2];
         stride_post1[nbDims - 3] = 1;
         for (std::size_t i = nbDims-4; i != static_cast<std::size_t>(-1); --i) {
             stride_post0[i] = stride_post0[i+1]*dims0[i+1];
             stride_post1[i] = stride_post1[i+1]*dims1[i+1];
         }
-        stride_step0 = new std::int32_t[nbDims-2];
-        stride_step1 = new std::int32_t[nbDims-2];
         for (std::size_t i = 0; i != nbDims-2; ++i) {
             stride_step0[i] = (dims0[i] == 1) ? 1 - static_cast<std::int32_t>(stride_post0[i]) : 1;
             stride_step1[i] = (dims1[i] == 1) ? 1 - static_cast<std::int32_t>(stride_post1[i]) : 1;
@@ -111,12 +107,6 @@ void Aidge::MatMulImpl_cpu::forward()
             dim = outDims.size() - 1 - keepDim0 - keepDim1;
         }
     }
-    if (nbDims > 2) {
-        delete[] stride_post0;
-        delete[] stride_post1;
-        delete[] stride_step0;
-        delete[] stride_step1;
-    }
 }
 
 // void Aidge::MatMulImpl_cpu::forward()