La sintaxis para asignar valores a struct puntero

Tengo una pregunta acerca de la sintaxis y el código.

Acabo de encontrar una manera de declarar que el struct en C, que es un poco diferente de lo que he visto hasta ahora.

Este es el código de ejemplo:

#include <stdio.h>
struct student {
    int age;
    int grade;
    char* name;
};
int main () {
    struct student s = { .name = "Max", .age = 15, .grade = 8 };
    return 0;
}

La asignación de variables .var_nombre funciona bien y se pueden asignar en el orden que quieras. Me gustó este enfoque por lo que empecé a experimentar y por lo tanto golpear la pared. Si yo fuera a declarar:

struct student *s = { ->name = "Max", ->age = 15, ->grade = 8 };

Esto no va a funcionar. Hay una sintaxis que podrían dar los mismos resultados cuando se utiliza un puntero como el código anterior?

Gracias!