dove ho sbagliato?

codice:
#include <stdio.h>

typedef struct{
  char targa[100];
  char marca[100];
  char modello[100];
} record_auto;

typedef struct{
  record_auto *puntatore[];
  int primalibera;
  int size;
} *database_auto;

database_auto make(int dim);

int main()
{
  getch();
  return 0;

}

//faccio le assegnazioni
database_auto make(int dim)
{
  database_auto db = (database_auto) malloc(sizeof(database_auto));
  if(db == NULL) return NULL;
  db -> puntatore = (record_auto *) malloc(dim * sizeof(record_auto));
  db -> primalibera = 0;
  db -> size = dim;
}