포인터를 배열처럼 사용하는 법을 연습하고 있어

typedef struct grade {
        char name[20];
        int id;
}grade;

예를 들어 이런 구조체를 사용하려고 하는데 이 구조체의 인스턴스가 10개가 필요한 상황이라면

grade g[10];   이런 식으로 배열을 쓰는 방법말고 포인터를 쓸 방법은 없어?

///////////////////////////////////////

grade *g;
g = malloc(sizeof(grade) * 10);

이렇게 해놓고 g[0]~g[9] 하면 되나?

c초보 구제 부탁함