Variable types: byte in data structure & OneWire library

I’ve recently been working on some Photon projects that include DS18 OneWire sensors. I have successfully used the OneWire library and the following lines of code in my project to get temp readings;

byte DS18_01[8] = { 0x28, 0xFF, 0x07, 0x85, 0x83, 0x17, 0x04, 0x24 };    //address of DS18_01 sensor
degF = getTemp(DS18_05);

I would like to use a data structure as follows;

struct device {
  byte address;
  String label;
  String status;
} devices[20];      //up to 20 OneWire DS18 sensors

  devices[1].address = 0x28, 0xff, 0x07, 0x85, 0x83, 0x17, 0x04, 0x24;
  devices[1].label = "DS18_01";
  devices[1].status = "Offline";

I am confused by how to assign a value to the address so that it can be used in this line of code;

degF = getTemp(DS18_05);

I tried degF = getTemp(device[1].address);
This doesn’t work and if I Serial.print the value of device[1].address it is 40.

Thanks in advance for any help & guidance!
Dale

Where does DS18_05 come from?
I see DS18_01 but not _05

In your struct address is only one byte, but you intend to assing eight - how would that work?

Oops…I have 20 sensors DS18_01 thru DS18_20. I pasted the wrong sample line of code.

How do I set address to 8 bytes in the data structure? If I code each address like this;
byte DS18_01[8] = { 0x28, 0xFF, 0x07, 0x85, 0x83, 0x17, 0x04, 0x24 }; it works. But, I want to be able to call getTemp using the device[#].address variable.

Just as you did in your working example

byte address[8];

The assignment works just the same way as there with = {...}

And if you want to initialise the struct you’d just do

struct device {
...
} devices[] = 
{ { 0x28, 0xff, 0x07, 0x85, 0x83, 0x17, 0x04, 0x24 }
  , "label 1"
  , "status 1"
  }
,
{ {....}
  , ..
  , ..
}
...
};

Thank you!