Construct Sensor Packet Placement

#include <iostream>
#include <cstdint>
#include <new>
#include <type_traits>
using namespace std;

struct SensorPacket{
    int id;
    int value;
};

int main() {
    int index, id, value;
    cin >> index >> id >> value;

    alignas(SensorPacket) uint8_t pool[sizeof(SensorPacket) * 3];

    size_t next_address = index * sizeof(SensorPacket);

    SensorPacket* pointer_pool = new (&(pool[next_address])) SensorPacket{id, value};

    cout << pointer_pool->id << ' ' << pointer_pool->value;

    pointer_pool->~SensorPacket();
    

    return 0;
}

Solving Approach

 

 

 

 

 

Upvote
Downvote
Loading...

Input

1 50 900

Expected Output

50 900