Sto studiando i puntatori e la memoria dinamica, ho fatto un piccolo codice che che prende un vettore di numeri, li filtra e, in base a dei limti di grandezza imposti come parametri della funzione che filtra,li stampa. Il tutto è gestito da puntatori. Il problema è che quando lo compilo apre la console ma non stampa nulla. Potreste aiutarmi a capire il problema per favore?Grazie in anticipo.
int* filtra(int v[], int num_ele, int minAccettabile, int maxAccettabile, int &filtrati)
{
filtrati = 0;
for(int i=0; i<num_ele;i++)
if(v[i]>=minAccettabile && v[i]<=maxAccettabile)
filtrati++;
int* p = new int[filtrati];
for(int i=0, copiati=0; i<num_ele;i++)
if(v[i]>=minAccettabile && v[i]<=maxAccettabile)
p[copiati++] = v[i];
return p;
}
int main()
{
int vettore[] = {6,-78,-59,11,73,-26,77,-92,-12,7,-31,77,84,15};
int quantiFiltrati=0;
int* filtrati = filtra(vettore,-14,-10,80,quantiFiltrati);
for(int i=1; i<quantiFiltrati; i++)
cout<<filtrati[i]<<" ";
delete[] filtrati;
system("pause");
return 0;
}