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è...

codice:
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;
	}
Grazie