Solved: 16 - Dynamic Memory
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user