Какой может быть максимальный размер двусвязного списка в С?
Двусторонним бывает скотч. А список - двусвязный. Если точнее, то "двунаправленный связный список". Он же doubly-linked list.
Если говорить о C - все зависит от Вашей реализации. Списков в C из коробки нет.
В C++ используйте max_size() для получения максимально возможного количества элементов в списке. Речь идет о std::list.
Элемент списка должен содержать 2 указателя (на предыдущий и следующий элемент) и саму полезную информацию, которую вы там хотите хранить. Для 64 битной машины 2 * 8 + k байт, где k - размер пользовательских данных. Если доступно N байт памяти (не обязательно оперативной в общем случае) то получаем не более N / (16 + k) записей.