Могу с этим согласиться, но не полностью.
1. C - это низкоуровневое программирование, как я говорил ранее. Оно само по себе не является столь простой задачей, так как требует работу с памятью, указателями и другими низкоуровневыми прелестьями. Это, в свою очередь, требует хорошего понимания системы. Но угнетать за это C не стоит, так как каждый язык имеет свои собственные задачи.
2. В C есть проблема с выделением и освобождением памяти. С этим не поспоришь, всегда необходимо правильно освобождать память, иначе это может привести к memory leak и различным ошибкам при выполнении. Здесь я никак не смогу оправдать C.
3. Трудно обнаружить ошибки в коде, потому что часто бывают выходы за границу массивов, нулевые указатели и другие ошибки, связанные с работой в низкоуровневой среде.
4. Опять же, если сравнивать C с другими языками, то существует недостаток в виде ограниченного числа библиотек, и потребуется больше работать)
В любом случае, все языки могут быть сложными, если не приложить должных усилий, терпения и практики. Но если у тебя имеется интерес и желание, C станет для тебя ценным опытом.
Ну, ты сравнил, конечно, в C++ есть ООП, что для новичка будет большой нагрузкой. В C их нет. Тем более, в C++ есть классы, что при работе с памятью усложнит все, и для новичка будет гораздо сложнее что-то понять.