Не можешь работать — иди учить

Человек пытается учить студентов программированию. Пишет что-то типа:

#include <stdlib.h>

void main(){
    char *p;

    p = (char*) malloc(strlen("John") * sizeof(char));
    strcpy(p, "John");

    // skipped some code

    free(p);
}

Компилирует все в Visual Studio, в режиме Debug — и естественно, сталкивается с адской руганью на последнюю строчку, после чего обращается за помощью к коллективному разуму:

heapcorrupt

Даже если соотношение между потребной для хранения строки памятью и значением strlen благополучно забыто (ну не каждый день приходится работать с C string’ами) — то отладчик Visual Studio довольно быстро помогает понять, что именно послужило причиной heap corruption’а. В общем, «преподаватель» некомпетентен либо в языке Си, либо в стандартной библиотеке, либо в конкретных инструментах разработки. Любой из пунктов — это полный «тушите свет, сливайте воду» (ну разве что кроме стандартной библиотеки — и то, если в учебных программах придется работать с Сишными строками — то такие нюансы нужно знать, как «Отче наш»). Сможет ли такой препод ответить на вопрос студента «у меня программа не работает, что делать, помогите»?

А потом мы удивляемся, почему выпускники по профильным вроде как специальностям идут работать куда угодно — только не по написанной в дипломе специальности.

Не можешь работать — иди учить: 5 комментариев

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *