Char Array Buffers String UINT8
First off you never want to use String - especially on a chip with a mere 512 bytes of SRAM. 

You should really be learning about struct for sending of data in the most efficient way.  A struct is a complex data type that combines multiple bits of data into one single variable - a bit like a record in a database.

You should avoid sending text as it is generally wasteful. The odd character, yes, but not whole strings of text.

For instance, you might want to send temperature, humidity and pressure:

struct data {
    int8_t temperature;
    uint8_t humidity;
    uint16_t pressure;
};

void sendData() {
    struct data myPacket;

    myPacket.temperature = 23;
    myPacket.humidity = 72;
    myPacket.pressure = 1016;

    driver.send((uint8_t *)&amp;myPacket, sizeof(myPacket));
    driver.waitPacketSent();
}


With a struct, if you want to send text, you need to allocate enough space in the struct for your text. For instance, enough room for 9 characters plus NULL:

struct data {
    int8_t temperature;
    uint8_t humidity;
    uint16_t pressure;
    char weather[10];
};


Then, to get data into it, you (for example):

strcpy_P(myData.weather, (PGM_P)F("fog"));