ciao a tutti, questa è la prima volta che vi scrivo vorrei pormi il mio problema nella speranza che qualcuno mi aiuti a risolverlo.
questo è il codice che ho scritto per allocare spazio in memoria, acquisire da tastiera la matrice, stamparla e deallocare lo spazio tutto tramite funzioni void...sicuramente ci sono degli errori durante l'allocazione perchè poi non mi permette di acquisire correttamente tutti i numeri della matrice.codice:#include<iostream> #include<new> using namespace std; void get(int***,int,FILE*); void show(int**,int); void alloca(int***,int); void disalloca(int***,int,FILE*); int main() { FILE*fp; fp=fopen("matricedafile.txt","w+"); int **p; int dim; cout<<"qual'è la dimensione della matrice ?"; cin>>dim; alloca(&p,dim); get(&p,dim,fp); show(p,dim); disalloca(&p,dim,fp); system("PAUSE"); return 0; } int i,j; void alloca(int***q,int d) { cout<<"funzione alloca \n "; *q=(int**)new int[d]; for(i=0;i<d;i++) { *q[i]=(int*)new int[d]; } } void get(int***q,int d,FILE*fu) { cout<<"funzione get \n"; cout<<"ora inserisci gli elementi della matrice!"<<endl; for(i=0;i<d;i++) { for(j=0;j<d;j++) { cout<<"elemento "<<i+1<<""<<j+1<<" "; cin>>*q[i][j];// fprintf(fu,"%d",*q[i][j]);// } } } void show(int**q,int d) { cout<<"funzione show \n"; for(i=0;i<d;i++) { for(j=0;j<d;j++) { cout<<q[i][j]<<" "; } cout<<endl; } } void disalloca(int***q,int d,FILE*fu) { cout<<"funzione disalloca\n"; for(i=0;i<d;i++) { delete(*q[i]); } delete(*q); fclose(fu); }
grazie in anticipo.

Rispondi quotando
;non penso sia quello il problema visto che ho una variante scritta in puro C che dà lo stesso problema (cioè non esce dalla funzione get).
Viene creata una nuova variabile all'interno della funzione e poi viene persa...
