Das hat nichts mit std::array zu tun. Du kannst ein struct wie "Daten" 
nicht einfach so direkt ausgeben. Wenn du es ohne Array machst:
| 1 | int main () {
 | 
| 2 |   Daten d { 1000, 1500, 2000, "text.0" };
 | 
| 3 |   std::cout << d << std::endl;
 | 
| 4 | }
 | 
Wird es genau so wenig funktionieren. Du musst deinen eigenen "operator 
<<" schreiben wenn du das ganze struct ausgeben können möchtest.
Veit D. schrieb:
> int16_t temp = readArr[0][0];
Und was soll das bewirken? Das ganze struct nach int16_t konvertieren?
Kann es vielleicht sein dass du einfach nur "array<Daten, 4>" statt "
array<array<Daten, 4>, 3>" (2-dimensionales Array) haben möchtest? Dann 
kannst du aber auch nicht einfach mit [0] auf die struct-Elemente 
zugreifen, sondern musst readArr[0].left o.ä. nutzen.