Ragazzi,
questo listato deve stampare a video un vettore allocato dinamicamente con dei numeri, da scegliere tra unsigned short e float.
Vorrei capire perchè sono stati inseriti su questa riga
due puntatori e l'uso della parentesi tonda solo per unsigned short *,su questo ho pensato che per la precedenza tra operatori avrebbe preso solo unsigned short *v(senza considerare la i), ditemi voi se è giusto ,e poi perchè ha usato quell'altro puntatore prima di unsigned short?codice:case 0: cout << *((unsigned short *)v+i)<< endl;
Listati:
codice:void leggi_vettore(void * & v, int n, int t) { switch (t) { case 0: v= new unsigned short [n]; break; case 1: v= new float [n];break; } cout << "\n inserisci gli elementi del vettore: " << endl; for(int i=0; i<n; i++) // basta un solo ciclo... switch (t) { case 0: // for(int i=0; i<n; i++) ...in alternativa cin >> *((unsigned short *)v+i); break; case 1: // for(int i=0; i<n; i++) ...in alternativa cin >> *((float *)v+i);break; } } void stampa_vettore(void* v, int n, int t){ cout << "\n stampa degli elementi del vettore: " << endl; for(int i=0; i<n; i++) switch (t) { case 0: cout << *((unsigned short *)v+i)<< endl; break; case 1: cout << *((float *)v+i)<< endl; break; }

Rispondi quotando