Я пару дней назад задавал этот вопрос, но ответов не получил, т.к сдохло мыло.Попрошу ответить ещё раз и не серчать... :)) А вопрос звучал так: дайте ссылки на сайты, где можно скачать не очень сложный компилятор для C++, если тока тока начал изучать язык этот.
Приветствую Вас, edren_baton! :з) Отвечаю еще раз.Конечно можно скачать пару стареньких компиляторов с http://www.borland.com, но я тебе советую купить диск за 50 рубликов и не парить себе мозги.А то будешь качать бесконечно(если у тебя, конечно, не выделенка). Да прибудет с тобой Велика Сила! Ответ отправлен: 04.06.2003, 11:58 Отправитель: BOLT Отвечает Vdr
Доброе время суток, edren_baton! Как я уже говорил - многовато качать будет, легче диск купить... Ответ отправлен: 04.06.2003, 10:21 Отправитель: Vdr Отвечает Yuri Gordienko
Приветствую Вас, edren_baton! Если хочется именно скачать, то могу предложить древний BC++ 3.1 (под DOS) - для начала ИМХО достаточно: качайте здесь (17.2М) или здесь (19.4M). С уважением, Avl2k.
Ответ отправлен: 03.06.2003, 18:15 Отправитель: Avl2k Отвечает Morgion
Приложение: Ответ отправлен: 03.06.2003, 20:56 Отправитель: Morgion
Вопрос № 830
Здравствуйте уважаемые эксперты. Это снова я. Спасибо всем кто откликнулся на вопрос №806. Вот что получилось, хотя это и не удаление каталога, а просто просмотр всего содержания с выводом полного пути файлов. Вот функция: ========================================================== int DeletD(char *dd) // указатель на путь(директорию), //который высылается сюда из другой //подпрограммы. { int id=0,jd=0,dl=0,done=0; char *temp; char *mask; struct find_t ffk; temp=strdup(dd); //для файла mask=strdup(dd); //для маски strcat(mask,"\*.*"); strcat(temp,"\"); done = _dos_findfirst(temp,19,&ffk); while (!done) { if(id>1){ strcat(temp,ffk.name); //сдесь
//формируется printf("%s
",temp); //полное getch(); //имя dl=strlen(temp)-strlen(ffk.name);// for(jd=dl+1;jd temp[jd]=''; //удалается } //имя файла:) done =_dos_findnext(&ffk); id++; } free(mask); free(temp); return 0; } ====================================================== А после выполнения(разового), происходит зависание, и даже Ctrl+Pause не помагает(если только два раза подряд). После чего перезагрузка всей системы чтобы запустить программу эту опять. Вообще-то, если вовремя остановить выполнение, то выдаёт NULL POINTER ASSIGMENT, причём только после выполнения этого поиска и значение done=3 при повторном вызове?! Подскажите где жучок.
Доброе время суток, Michael! strdup(dd) создает строку длиной strlen(dd)+1. Далее ты делаешь strcat(mask,"\*.*"), т.е. уже явное переполнение длины буфера, далее опять добавляешь - вот и ошибка, - ты пишешь по нераспределенной памяти. Решение: или выделяй malloc'ом заранее большой буфер или используй realloc Успехов Ответ отправлен: 04.06.2003, 10:24 Отправитель: Yuri Gordienko Отвечает BOLT
Здравствуйте, Michael! Я че-то не уловил, а где findnext() Приведи, пожалуйста полный листинг функции! Пока! Ответ отправлен: 04.06.2003, 13:05 Отправитель: BOLT
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.