Aspetta, se tu lavori con un array sai già la dimensione. O perchè l'hai allocato in modo statico, o perchè l'hai allocato in modo dinamico e quindi sai quanta roba c'è dentro. Quello che passi alla funzione è sempre un puntatore al primo elemento, e la sua dimensione!
ergo, se vuoi memorizzare dentro un array B l'array A senza l'ultimo elemento, prendendo in considerazione il fatto che DIM è la dimensione basta un for
codice:
int B[DIM-1];
for(int i=0;i<DIM-1;i++)
B[i] = A[i];
Quindi questo è quanto, comunque sicuramente non ti servirà lavorare in questo modo, basta modificare i parametri della funzione, se io ho una funzione del genere
codice:
int func(int a[], int dim) {
for(int i=0;i<dim;i++)
cout<<a[i];
}
e ho un array a[] = { 1, 2, 3, 4, 5 }. Facendo func(a, 5) stampa tutti gli elementi, facendo func(a, 4) ne stampa tutti tranne l'ultimo, non so se mi spiego, è come se l'array che gli passo è più piccolo, non mi serve passargli per forza un'array di dimensione inferiore, gli passo l'indirizzo iniziale e la dimensione 'logica' non 'fisica' dell'array, in modo da poterci lavorare come voglio.
Essenzialmente, per fare quello che devi fare tu, ti basta questo, puoi farlo anche inserendo in B gli elementi di A meno l'ultimo, ma questo è soltanto una complicazione inutile.