Я бы не использовал этот тип приведения типов, так как он делает код намного сложнее для чтения. Вместо этого используйте временную переменную для хранения указателя. Это сделает код более легким для чтения и понимания. Компилятор может оптимизировать его в сгенерированном коде.
UI_Remote_s **ptr = (UI_Remote_s **)structs;
a2 = (*ptr) -> Method;
a2 = (*(ptr + 5)) -> Method;
a2 = ptr[2] -> Method;
.....