ciao a tutti!
allora io ha scritto queste righe di codice:

#include <iostream.h>
#include <string.h>


typedef char stringa[30];

struct abbonati{
char* nominativo;
stringa indirizzo;
stringa num_tel;

};

int main()
{
abbonati* p= new abbonati;
char nome[50];

cout<<"Inserisci il nome dell'abbonato\n";

cin.get(nome,50);
p->nominativo=new char [strlen(nome)+1];
strcpy(p->nominativo, nome);

cout<<"Inserisci l'indirizzo dell'abbonato:\n";
gets(p->indirizzo);

cout<<"Inserisci il numero di telefono dell'abbonato:\n";
gets(p->num_tel);

cout<<"L'utente appena registrato e':\n"
<<"Nome:\t"<<p->nominativo<<"\n"
<<"Indirizzo\t"<<p->indirizzo<<"\n"
<<"Numero di telefono:\t"<<p->num_tel<<endl;

system("pause");
return 0;
}

Non mi da errori, solo che nella finestra di output mi salta il gets(p->indirizzo) nel senso che mi chiede "Inserisci indirizzo" e poi subito salta a "inserisci numero telefonico".
Perchè? cosa ho sbagliato?

mi sono appena accorta che se invece faccio cosi:

typedef char stringa[30];

struct abbonati{
stringa nominativo;
stringa indirizzo;
stringa num_tel;

};

int main()
{
abbonati* p= new abbonati;

cout<<"Inserisci il nome dell'abbonato\n";
gets(p->nominativo);

cout<<"Inserisci l'indirizzo dell'abbonato:\n";
gets(p->indirizzo);

cout<<"Inserisci il numero di telefono dell'abbonato:\n";
gets(p->num_tel);

cout<<"L'utente appena registrato e':\n"
<<"Nome:\t"<<p->nominativo<<"\n"
<<"Indirizzo\t"<<p->indirizzo<<"\n"
<<"Numero di telefono:\t"<<p->num_tel<<endl;

system("pause");
return 0;
}
va una meraviglia!solo che l'esercizio chiede esplicitamente di allocare dinamicamente anche la stringa nominativo.

Grazie a tutti
Nereide