Lo unico que se me ocurre es que lo estes compilando en un archivo .C o con un modificador que intente compilarlo en C, entonces deberias definir la estructura asi:
Código:
typedef struct PERSONA
{
int clave;
char nombre[30];
}persona;
En cuanto a new, si estas trabajando con C deberias usar malloc y free.