Grazie dei suggerimenti, ho cercato di metterli in pratica. La struttura che uso per descrivere la partizione occupata è questa:
per sapere l'indirizzo dell'ultimo byte della partizione posso fare:codice:/** Elemento della lista delle partizioni libere */ typedef struct elMap_t { /** Puntatore all'inizio della partizione */ byte *start; /** Dimensione della partizione */ size_t size; /** Puntatore al precedente elemento della lista */ struct elMap_t *prev; /** Puntatore al prossimo elemento della lista */ struct elMap_t *next; } elMap;
giusto?codice:m->start + m->size
e per sapere se ci sono byte liberi tra questa partizione e la successiva posso fare:
giusto?codice:m->next->start - (m->start + m->size)

Rispondi quotando