Solved: 16 - Dynamic Memory

This commit is contained in:
2026-08-15 17:04:40 +03:00
parent ec1c1f1ce7
commit 7ddd9f1bc3
2 changed files with 18 additions and 4 deletions
@@ -5,7 +5,7 @@
namespace pointers { namespace pointers {
[[nodiscard]] auto allocate_and_fill(std::size_t count, int value) -> int*; [[nodiscard]] auto allocate_and_fill(std::size_t count, int value) -> int*;
void deallocate(int* ptr); void deallocate(const int* ptr);
[[nodiscard]] auto clone_array(const int* source, std::size_t count) -> int*; [[nodiscard]] auto clone_array(const int* source, std::size_t count) -> int*;
} // namespace pointers } // namespace pointers
@@ -1,9 +1,23 @@
#include "dynamic_memory.hpp" #include "dynamic_memory.hpp"
#include <algorithm>
namespace pointers { namespace pointers {
auto allocate_and_fill(std::size_t count, int value) -> int* { (void)count; (void)value; return nullptr; } auto allocate_and_fill(const std::size_t count, const int value) -> int* {
void deallocate(int* ptr) { delete[] ptr; } const auto na = new int[count];
auto clone_array(const int* source, std::size_t count) -> int* { (void)source; (void)count; return nullptr; } std::fill_n(na, count, value);
return na;
}
void deallocate(const int* ptr) {
delete[] ptr;
}
auto clone_array(const int* source, const std::size_t count) -> int* {
const auto na = new int[count];
std::copy_n(source, count, na);
return na;
}
} // namespace pointers } // namespace pointers