Частые ошибки в решениях задач коллоквиума №2 2012 года

Задача №1: неверное добавление элемента в начало списка или в произвольное место списка, неверное копирование строк (присваиванием указателей вместо использования функций strcpy/strdup), построение списка массивов или массива массивов вместо требуемого списка списков (т.е. основной список содержит в качестве поля элемента не заголовок вспомогательного списка, а указатель на массив).

Задача №2: незнание статических, локальных и глобальных переменных, трудности с адресной арифметикой и префиксными/постфиксными операциями.

Задача №3: указатели next инициализируются в порядке, не соответствующем заданному порядку обхода двоичного дерева; устанавливается указатель на предыдущий узел дерева в заданном порядке обхода вместо указателя на следующий узел.

Задача №4: неверное использование функции realloc (передача одного параметра вместо двух, результат функции не сохраняется в переданном в качестве первого параметра указателе), выделение памяти без учета нулевого байта-терминатора строки, в некоторых вариантах — уменьшение памяти под исходную строку функцией realloc с последующим копированием символов из освобождённой части строки.

Задача №5: незнание правил неявного преобразования типов, непонимание указателей и двойных указателей, неверное применение оператора sizeof к массивам.

Задача №6: вычисление максимального/минимального элемента в поддереве без учета того, что заданное дерево является деревом поиска; неверное упрощение задачи до подсчетов заданной  функции только в корне (отсутствие рекурсивных вызовов).

Leave a Reply