Si certo, perchè ti ripeto:

L'indirizzo che passi è alla struttura, non al campo "ore" della struttura.
codice:
#include <stdio.h>

struct orario {
        short int ore;
        short int minuti;
        short int secondi;
};

int main (void) {
        short int *p;
        struct orario ora1;
        struct orario *sp = &ora1; /* assegno a sp, l'indirizzo di ora1 */
        p = &sp -> ore; /* oppure &(*sp).ore */
        printf ("Inserisci ora : ");
        scanf ("%d", p); /* qui passo l'indirizzo del campo in qlla struct */
        return (0);
}
bye