где не доучил матчасть?
В части работы с памятью: выделение и очиска памяти, стек и куча, различие между массивом и одним элементом, время жизни объектов.
Например, вы читаете данные в элемент, который представляет собой один символ, выделенный на стеке. Вам же нужен буфер достаточно размера, лучше всего выделенный динамически, т.к. вы его потом собираетесь хранить в какой-то структуре данных.
Рекоменду вдумчиво прочитать K&R и выполнить все примеры. Это очень маленькая книжка, которая закроет все ваши пробелы в плане языка С.