ciao a tutti! Ho questo codice -molto banale e inutile forse- e vorrei sapere se la scrittura cin.getline (p[i].s , 99) e' equivalente a una delle seguenti scritture o a altre che conoscete nel linguaggio c++.
Grazie.
cin.getline (*p.s, 99);
cin.getline (p->s, 99);
In queste 2 scritture non sono sicura che il puntatore punti effettivamente alla posizione i-esima del vettore di stringhe, costruito con l'allocazione dinamica, dato che la i non compare da nessuna parte. sapete come devo inserirla utilizzando la scrittura coi puntatori , anziche' con i vettori - cin.getline (p[i].s , 99) - ???
Grazie mille.
PS: infine, e' sempre necessario quando faccio un'allocazione dinamica, deallocare la memoria alla fine con l'istruzione delete p; ??
Ciao Flo.
#include <iostream.h>
#include <string.h>
#include <stdlib.h>
struct stringa
{
char s [100];
};
int main ()
{
int dim;
int i;
stringa* p;
cout << "Quante stringhe vuoi inserire?";
cin >> dim;
if (dim <= 0)
{
cout << "Errore!"
return 1;
}
p = new stringa [dim];
if (p==NULL)
{
cout << "memoria esaurita";
exit (1);
}
cout<< "inserisci" << dim<< "stringhe: "<< endl;
for (i=0; i<dim; i++)
{cin.getline (p[i].s ,99);}
cout << "Hai appena scritto queste righe: "<<endl;
for (i=0; i<dim; i++)
{cout << p[i].s << endl;}
delete p;
return 0;
}