Библиотечные решения так не делаются, есть несколько базовых С-шных
подходов: 1) Для сборки библиотеки пользователь должен предоставить конфиг, что-то типа <mylib>_cfg.h. В этом файле указано все необходимое для сборки и корректной библиотеки.
Часто при этом подходе библиотека собирается вместе с проектом.
2) У библиотеки есть функция Init, в которую нужно передать необходимую для работы информацию. В вашем случае указатель на участок памяти, количество пулов памяти и размер пула.
3) Библиотека пользуется переменными, объявленными extern. Вы должны у себя в коде объявить эти переменные для успешной линковки.
Для решения задачи вам нужен либо просто двумерный массив, либо массив указателей на блоки памяти. Блок памяти можно описать структурой, содержащей указатель, размер блока и количество данных.