-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathunique_ptr.cpp
36 lines (30 loc) · 1.18 KB
/
unique_ptr.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <memory>
#include <vector>
using namespace std;
int main(){
{
uint8_t var1 = 255; // 8-bit unsigned integer (0 to 255)
uint16_t var2 = 65535; // 16-bit unsigned integer (0 to 65,535)
uint32_t var3 = 4294967295; // 32-bit unsigned integer (0 to 4,294,967,295)
printf("uint8_t: %u\n", var1);
printf("uint16_t: %u\n", var2);
printf("uint32_t: %u\n", var3);
}
{
std::unique_ptr<uint8_t> var1 = std::make_unique<uint8_t>(65); // 8-bit
std::unique_ptr<uint16_t> var2 = std::make_unique<uint16_t>(65535); // 16-bit
std::unique_ptr<uint32_t> var3 = std::make_unique<uint32_t>(4294967295); // 32-bit
std::cout << "uint8_t: " << *var1 << std::endl;
std::cout << "uint8_t: " << static_cast<uint32_t>(*var1) << std::endl;
std::cout << "uint16_t: " << *var2 << std::endl;
std::cout << "uint32_t: " << *var3 << std::endl;
}
{
std::unique_ptr<uint8_t[]> ptr1 = std::make_unique<uint8_t[]>(255);
std::vector<uint8_t> buffer (ptr1.get(), ptr1.get()+ 255);
for(auto b: buffer){
std:cout << b << std::endl;
}
}
}