C:\Nordic Semiconductor\nrf51_sdk_v4_4_1_31827\nrf51822\Include\ble\softdevice\ble_gatts.h
typedef struct {
uint16_t handle; /**< Attribute Handle. */
uint8_t op; /**< Type of write operation, see @ref BLE_GATTS_OPS. */
ble_gatts_attr_context_t context; /**< Attribute Context. */
uint16_t offset; /**< Offset for the write operation. */
uint16_t len; /**< Length of the incoming data. */
uint8_t data[1]; /**< Incoming data, variable length. */
} ble_gatts_evt_write_t;
My question is how to interpret the element data[1]? Is it just uint8_t *data(C-wise it is)? If so why is it defined in such a way? Especially with the size of the data array as one with the following comment about its variable length which all together makes this definition very confusing.
Thanks.