То он у меня выводит что "Не хватает памяти". Если поменять допустим с _Bool на int то все в порядке будет.
Вопрос: Почему? Я знаю что _Bool всегда должен 1 байт занимать и можно его цифрой указать, но почему через sizeof(_Bool) не работает?
Там же, перед fprintf(), впишите вызов perror(), чтобы посмотреть, что за ошибка-то случается. Подозреваю, что malloc() не умеет выделять память по одному байту.
Почитай спецификации 'C99'. Есть 'C89' есть 'C99'. Так вот в 'C99' есть такой тип данных '_Bool'. Он похож на 'bool' из 'C++', за исключением того что в 'C++' есть 'true' и 'false', а в 'C99' нет. Но можно подключить 'stdbool.h', тогда он будет совместим с 'bool'.