Ciao!! Sto realizzando un programma in C che consiste in un allocatore di memoria. La specifica mi richiede di allocare inizialmente un blocco di memoria di n byte e poi fornire delle funzioni che permettano di allocare e disallocare blocchi di dimensione indicata in questa area di memoria.
Per la gestione dell'area di memoria ho creato una lista che descrive le partizioni occupate. Per ogni partizione memorizzo il puntatore al primo byte della partizione (di tipo void *) e la lunghezza della partizione (di tipo int).
Quando mi viene richiesta una nuova allocazione devo consultare la lista per cercare uno spazio sufficiente. Per far ciò devo sommare, per ogni partizione, il puntatore al primo byte e la sua lunghezza e infine sottrarre tale somma al puntatore della partizione successiva per ottenere la lunghezza della partizione libera che sta nel mezzo.
Praticamente io vorrei sommare ad un void* un int e poi sottarre ad un void* il risultato di tale somma.
Questa operazione non mi da il risultato che mi apetto, cosa e' che sbaglio? Potreste darmi delucidazioni sull'aritmetica dei puntatori?

Grazie mille