--- a/test/test_reader.h	2023-11-14 22:21:10.528641740 +0100
+++ b/test/test_reader.h	2023-11-14 22:21:23.195431970 +0100
@@ -57,6 +57,7 @@
     if (length_bytes > (data_.size() - index_))
       return ErrorStatus::ReadLimitReached;
 
-    std::copy(&data_[index_], &data_[index_ + length_bytes], begin_byte);
+    if (length_bytes)
+      std::copy(&data_[index_], &data_[index_] + length_bytes, begin_byte);
     index_ += length_bytes;
     return {};
--- a/include/nop/base/array.h	2025-03-03 22:30:57.390540115 +0100
+++ b/include/nop/base/array.h	2025-03-03 22:31:15.904318700 +0100
@@ -202,7 +202,7 @@
     else if (size != Length * sizeof(T))
       return ErrorStatus::InvalidContainerLength;
 
-    return reader->Read(&(*value)[0], &(*value)[Length]);
+    return reader->Read(&(*value)[0], &(*value)[0] + Length);
   }
 };
 
--- a/test/test_writer.h	2025-03-03 22:44:12.754027768 +0100
+++ b/test/test_writer.h	2025-03-03 22:44:48.958594770 +0100
@@ -52,6 +52,7 @@
     const std::size_t start_offset = data_.size();
     data_.resize(start_offset + length_bytes);
 
+    if (length_bytes)
     std::copy(begin_byte, end_byte, &data_[start_offset]);
     return {};
   }
