Salve a tutti sono un utente nuovo di questo forum e anche un novizio della programmazione in C++. Per imparare a gestire puntatori a record ho scritto questo codice molto semplice in allocazione statica (per farla breve tale codice mi dovrebbe permettere di inserire e stampare un vettore formato da alcuni dati anagrafici di una persona) :
codice:
#include <cstdlib>
#include <iostream>

using namespace std;

const int dim=100;
typedef char stringa[dim];  //alias stringa di dimensione dim di tipo carattere

//creazione struttura di tipo persona
struct persona
{
       stringa nome;
       stringa cognome;
       int eta;
};
typedef persona p[dim];

int main(int argc, char *argv[])
{
    persona *punt=0;         //dichiarazione puntatore ad         elementi di tipo persona
    p v;                    // vettore di tipo persona
    int i,n;
    cout<<"inserire riempimento\n";
    cin>>n;
    cout<<"inserire campi\n";
    for(punt=v,i=0;i<n;i++,punt++)
    {
    cout<<"inserire nome\n";
    cin.getline(punt->nome,dim+1);
    cin.ignore();
    cout<<"inserire cognome\n";
    cin.getline(punt->cognome,dim+1);
    cin.ignore();
    cout<<"inserire eta'\n";
    cin>>punt->eta;
    }
    cout<<"stampa vettore\n";
    for(punt=v,i=0;i<n;i++,punt++)
    {
    cout<<punt->nome<<endl;
    cout<<punt->cognome<<endl;
    cout<<punt->eta<<endl;    
    }
    system("PAUSE");
    return EXIT_SUCCESS;
}
Il codice viene compilato e l'esecuzione fila liscia finchè all'atto dell'inserimento dell'età non mi viene data tale possibilità; inoltre all'atto della stampa mi visualizza solo il campo nome con l'eccezzione della prima lettera che mi viene "mangiata". Qualcuno potrebbe aiutarmi? P.S: so l'esistenza della libreria "string.h" ma per ora vorrei evitare di usarla. Grazie mille a tutti per le risposte