Hey,
I am using a struct array to store some of my data. In setup() i am filling the whole array with default values. It compiles fine but the particle E-Series is blinking red instantly.
It would always be a good idea to also state what SOS + x code it blinks
However, since you are passing in sizeof(array) which is the number of bytes your array occupies and not the number of elements in the array you'll probably run into an SOS+1 hard fault.
The array size can be calculated like this
const int arrSize = sizeof(elements) / sizeof(elements[0]);
A simple way to debug such issues before consulting the community would be to use Serial.print() statements to check the values against your expectations.
If you printed out array_size inside your clear_data() function you would have seen that it will not hold the expected value of 10 but something much bigger consequently explaining why that code is bound to crash
BTW, if you intend to store these elements (e.g. in EEPROM) you must make sure to store the String field separately as its content will not be part of the array element. The array element will only hold a pointer to the object.
I'd rather suggest using standard C string (aka char array) as it will make things somewhat easier and potentially more stable too.