Допустим, мы захватываем память при помощи
int *p = (int*) malloc( 5*sizeof(int) );
Теперь, указатель p указывает на кусок памяти в 5 целых чисел. После некоторых операций, среди которых может быть например такая
int *q = p + 1;
Надо освободить память от первого элемента массива, а на остальные 4 элемента должен благополучно ссылаться q. Понятно, что тупое
free( p ); /* не годится */
убьет весь блок памяти. А надо, чтобы освободилась только первое целое число.
Можно ли это сделать и если можно то КАК???????