Турбо отладчик (Turbo Debugger) 3.0

Здесь правильнее было бы использовать


               strcpy(workbuf, "all done\n");
               convert("xyz");
               print(workbuf);
               ...
               convert(char *p) {
                       strcpy(workbuf, p);
                       while (*p)
                       ...
               }
            Здесь правильнее было бы использовать в функции  свой  собс-
       твенный рабочий буфер (workbuf).
                    Предположения об инициализации данных
       -----------------------------------------------------------------


            Иногда вы предполагаете,  что другая функция уже  установила

       TDeb 3.0 #2-3               = 125 =
       для вас какие-то значения:
               char *workbuf;
               addworkstring(char *s)
               {
                       strcpy(workbuf, s);
               }
            Надежнее будет записать эту подпрограмму,  добавив оператор:
               if (workbuf == 0) workbuf = (char *)malloc(20);
                           Не забывайте об очистке
       -----------------------------------------------------------------
            Этот тип ошибки может привести к тому,  что  ваша  программа
       будет  долго  работать,  но  в конце-концов исчерпает динамически
       распределяемую область памяти и аварийно завершит работу:
               crunch_string(char *p)
               {
                       char *word = (char*)malloc(strlen(p));
                       ctrcpy(work,p);
                       ...
                       return(p)
               }
                              "Забор и столбы"
       -----------------------------------------------------------------
            Этот тип ошибок аналогичен следующему. Сколько столбов пона-
       добиться, чтобы построить 100-метровую изгородь,если столбы нужно
       ставить через каждые 10 метров? Напрашивается ответ 10, но он не-
       верен, так как в расчет принимается последний столб в конце забо-

Содержание раздела