Rather than saving as char data which is converted to a String, all data should be stored as uints (eg: uint8_t, uint16_t, uint32_t). The size of each data byte used for data transfer should be specified in the flags byte, specifically the last 4. These can be manipulated as pointers to arrays within code, as the length of a LoRa packet is known to be 256 bytes or less. Therefore, buffer variables can be created with the max length known (Eg uint8_t buffer8[256], unit16_t buffer16_t[128], etc).
Rather than saving as char data which is converted to a String, all data should be stored as uints (eg: uint8_t, uint16_t, uint32_t). The size of each data byte used for data transfer should be specified in the flags byte, specifically the last 4. These can be manipulated as pointers to arrays within code, as the length of a LoRa packet is known to be 256 bytes or less. Therefore, buffer variables can be created with the max length known (Eg uint8_t buffer8[256], unit16_t buffer16_t[128], etc).