Ваш код верен, в этом нет ничего плохого, но у вас есть привычка проверять возвращаемое значение функции malloc (), если оно равно NULL, это создаст проблему в вашей программе, в нашем случае распределение памяти с помощью malloc () функция не выполнена