Premetto che conosco la differenza a=b++ e a=++b con pre e post incremento.
Ho fattoallora questo esercizio e funziona
#include <iostream>
using namespace std;
const int MASSIMO=4;
int numeroInseriti=0;
void carica2(int vett[],int MASSIMO,int*numInseriti)
{
while(*numInseriti<MASSIMO&&vett[*numInseriti]!=-1)
{
cout<<"mettere valore "<<endl;
cin>>vett[*numInseriti];
if (vett[*numInseriti]==-1)
break;
if(*numInseriti==MASSIMO)
cout<<"spazio esaurito "<<endl;
++*numInseriti;
}
}
int main()
{
int valori[MASSIMO];
carica2(valori,MASSIMO,&numeroInseriti);
cout<<"valori sono "<<numeroInseriti<<endl;
return 0;
}
Tuttavia mi è venuto un grande dubbio.
Nella funzione carica2 ho provato a sostituire a ++*inseriti la dicitura *inseriti++ , sono cioè passato a post-incremento.
A mio parere non dovrebbe cambiare nulla e invece cosa succede?
Che il vettore si carica all'infinito e non si esce mai dal ciclo.C'è qualcosa che non funziona.
Come mai?