В последние несколько лет я вижу множество рекомендованных на C++ лучших практик. Рекомендации C++ не применимы к C даже в меньшей степени. В частности, для людей, поступающих с языка относительно высокого уровня, такого как C++ или Java (например, я), программирование на C кажется очень опасным.Что такое современные идиомы C/руководящие принципы для предотвращения ошибок памяти?
Я знаю, что C слишком низкий уровень языка, чтобы делать какие-либо гарантии, но есть ли что-то, что я должен соблюдать при написании кода C, чтобы я мог свести к минимуму вероятность ошибок, связанных с памятью?
Для тех, кто придет с языка * более низкого уровня, C является «легким и безопасным», поэтому он был разработан в первую очередь: чтобы инкапсулировать методы работы ассемблера. Но неинициализированные переменные, неинициализированные распределения памяти и превышение границ массива опасны. Компилятор может предупредить о первом, но другие - ваша ответственность. –
... и если функция возвращает значение, которое не имеет непосредственного отношения, например 'scanf', или тот, который возвращает указатель, например' fopen', вы должны проверить это значение. Очень легко написать код, который игнорирует их, и падает при первом слое ветра. –