Salve, la seguente funzione, dovrebbe "allungare" un array di interi... solo che la prima volta che la invoco con l'array x di un elemento e la nuova lunghezza pari a 5 tutto funziona correttamente, quando la invoco per la seconda volta con l' array di lunghezza 5 e nuova lunghezza 8 mi và in segmentation fault... e non capisco perchè...
Graziecodice:int *allunga(int *x, int vl, int nl){ // vl--> vecchia lunghezza nl--> nuova lunghezza int j; int *q = new int[nl]; //creo il nuovo array, qui ottengo il segmentation fault for (j=0; j<vl; j++) q[j]= x[j]; //copio quello vecchio in quello nuovo for (j = vl; j< nl; j++) q[j] = -1; delete []x; //cancello quello vecchio x = q; //faccio puntare x al nuovo array return x; }


Rispondi quotando