Crus, у тебя декларация функции add отличается от ее определения. Если необходимо передавать в add указатель на TRegTable, то функция должна быть продекларирована так: int add(TRegTable *pNext);а ее описание должно быть таким: int add(TRegTable *pNext)
{
id++;
pNext->ID = id;
...
return 0;
}Потом, add должна создавать новый объект используя оператор new, а твоя функция add не создает нового объекта. Даже если она будет правильно описана, первое же обращение к ней вызовет Exception.Со списками у тебя не лады, рекомендую почитать книгу - Уильям Топп, Уильям Форд "Структуры данных в C++". Отличная книга по организации структур данных, есть и про списки, и про стеки, очереди и многое другое, и все с примерами. Я сам программирую на Билдере, так что если что - пиши, попробуем разобраться.