Похоже, вы задаете два вопроса
Безопасно ли обрабатывать и тестировать как массив длины 3?
Вероятно, лучше этого избежать. Это может быть определенное действие в стандарте C ++, но даже если это так, вряд ли все, с кем вы работаете, поймут, что вы здесь делаете. Я полагаю, что это не поддерживается, если вы читаете стандарт из-за потенциальной возможности дополнить структуры, но я не уверен.
Есть ли лучший способ получить доступ к участнику без его имени?
Да. Попробуйте использовать offsetof макрос / оператор. Это обеспечит смещение в памяти конкретного элемента в структуре и позволит вам правильно расположить точку на этом элементе.
size_t offset = offsetof(mystruct,c);
int* pointerToC = (int*)((char*)&someTest + offset);
Другим способом было бы просто взять адрес c напрямую
int* pointerToC = &(someTest->c);