Originariamente inviato da Tigre851
la funzione inserisci chiama allunga:

codice:
void inserisci(int elemento, int elem[], int* x[]){
int posizione = elemento/100;
        /* qui potevi anche fare così */
        /* int i = elemento % 100; */ 
	int i = elemento - (posizione * 100);
        if (elem[posizione] == -1){
                x[posizione] = new int[1];
                elem[posizione] = 1;
        }
	if (elem[posizione] < i){
		x[posizione] = allunga(x,elem[posizione],i)
		inizializza(x[posizione]);
		elem[posizione]=i;
		
	}

	
	x[posizione][i] = elemento;
		
	
	
	}
dunque, il main è corretto, il problema è nella riga contrassegnata in blu

correggi così
codice:
x[posizione] = allunga(x[posizione],elem[posizione],i);
comunque, il compilatore che hai usato ti avrebbe dovuto segnalare questo errore

a.cpp: In function `void inserisci(int, int*, int**)':
a.cpp:25: error: cannot convert `int**' to `int*' for argument `1' to `int*
allunga(int*, int, int)'


quale hai usato e che versione?
io ho usato gcc ver. 3.3.2

ah, la funzione inizializza cosa fa?