C++
perchè qui devo mettere & per definire la variabile g nella funzione poli_read all inizio del programma ?
é legato col fatto che l'array è essostesso un array puntatore cioè dinamico? non capisco cosa cambiarebbe se non metto &
premetto che il programma aveva questa parte all inizio dove "g" era gia apparso:
using namespace std;
é legato col fatto che l'array è essostesso un array puntatore cioè dinamico? non capisco cosa cambiarebbe se non metto &
double *poli_read(int &g) { double *p; cout << "Grado del polinomio: "; cin >> g; cout << "Coefficienti:\n"; p=new double[g+1]; for(int i1=0;i1<=g;i1++) cin >> p[i1]; return p; }
premetto che il programma aveva questa parte all inizio dove "g" era gia apparso:
using namespace std;
void poli_print(double *p, int g) { for(int i1=0;i1<=g;i1++) cout << p[i1] << " "; cout << endl; }
Risposte
Allora.. ti consiglio di andare a leggere ed imparare i concetti di:
-Puntatore (http://www.dsi.unive.it/~labprog/lezion ... ione6.html);
-Reference (https://www.italiancpp.org/2013/08/23/p ... ivi-senza/);
-Passaggio di parametri per valore e riferimento (https://www.html.it/pag/15499/parametri ... ferimento/);
Questi tre argomenti sono parte della base fondamentale di conoscenze che devi avere prima ancora di iniziare a scrivere un programma che usa funzioni come quelle che hai descritto.
Detto ciò nella funzione che chiama poli_read tu dovrai creare una variabile intera e passarla alla funzione:
ora subito dopo la chiamata a poli_read dentro alla variabile g avrai il valore della lunghezza dell'array stesso.
P.S. Cercando dei tutorial in inglese si possono trovare cose molto più valide di quelle che io ti ho proposto nei link.
-Puntatore (http://www.dsi.unive.it/~labprog/lezion ... ione6.html);
-Reference (https://www.italiancpp.org/2013/08/23/p ... ivi-senza/);
-Passaggio di parametri per valore e riferimento (https://www.html.it/pag/15499/parametri ... ferimento/);
Questi tre argomenti sono parte della base fondamentale di conoscenze che devi avere prima ancora di iniziare a scrivere un programma che usa funzioni come quelle che hai descritto.
Detto ciò nella funzione che chiama poli_read tu dovrai creare una variabile intera e passarla alla funzione:
.... int var; double *array; array = poli_read(var); ... delete[] array; // per evitare memory leak
ora subito dopo la chiamata a poli_read dentro alla variabile g avrai il valore della lunghezza dell'array stesso.
P.S. Cercando dei tutorial in inglese si possono trovare cose molto più valide di quelle che io ti ho proposto nei link.
continuo a non capire le differenze tra * e & non hai qualche link con molto esempi che capisco meglio con quello che con le parole? grazie mille