Указатель и массив в С - одно и то же (почти).
C++ (Qt)
const u_int16 * ptr = o.GetFParams();
u_int16 val = ptr[0];
Однако обратите внимание: в структуре массив имеет 1 элемент, поэтому
o.GetFParams()[0] правильно а o.GetFParams()[1] вернет мусор (некорректное значение) за пределами TMStructObj - а может и вылететь. Но так может быть сделано умышленно - "хвост" используется как массив переменной длины. Напр
C++ (Qt)
TMStructObj * obj = (TMStructObj *) malloc(sizeof(TMStructObj) + sizeof(u_int16) * 5);
Так я "отрастил хвост" (5 элементов) и могу его использовать
Тут щас набегут теоретики (мол, "это очень плохой стиль" и все такое) - но Вы их особо не слушайте