Доброе время суток, paulkan! Извечный вопрос... Смотря под что пишешь, - если под винду, то лучше всего поставить как среду разработки - Visual Studio .NET, а компилер заменить на Intel C++ 7.1 (на данный момент считается наиболее качественно оптимизирующим компилятором). Если пишешь под Линукс, то однозначно gcc. Удачи
Ответ отправлен: 19.04.2003, 08:43 Отправитель: Yuri Gordienko Отвечает Knignick
"На вопрос на такой", paulkan, однозначного ответа быть не может. Все зависит много от чего. Хотя бы от того под какую ось собираешься писать, есть ли уже опыт программирования, что именно тебя интересует C или и C++ и т.д. С другой стороны изучать ОСНОВЫ не все ли равно на каком компиляторе? Лично я реккомендую Visual C++ (быстрый компилятор, оптимальный код, соотвествует стандарту) Ответ отправлен: 20.04.2003, 00:36 Отправитель: Knignick Отвечает K0dMaster
Здравствуйте, paulkan! Если чистый с то могу посоветовать lcc достаточно мощный компилятор причем халявный очень маленькой и с отчень хорошим отлдчиком причем все это дело под винду а взять его можно отсюда http://www.cs.virginia.edu/~lcc-win32/ либо по фтп ftp://ftp.cs.virginia.edu/pub/lcc-win32/lccwin32.exe Ответ отправлен: 19.04.2003, 20:23 Отправитель: K0dMaster
Вопрос № 715
Здравствуйте эксперты! Мучает меня один вопрос: есть функция из стандартной библиотеки, которая возвращает указатель на строку char * getenv(const char*). Так вот, если в программе я обращусь к этой функции char * res = getenv("test"), то как я понимаю мне вернется указатель на строку. Т.е. получается что эта функция выделяет под хранение память? И если это так, то как ее освободить?
Приветствую Вас, stranger! При сомнениях советую смотреть описание в хелпе. Конкретно об этой функции - ничего освобождать(как и модифицировать) нельзя. Удачи Ответ отправлен: 19.04.2003, 08:59 Отправитель: Yuri Gordienko Отвечает Ramzes
Доброе время суток, stranger! Нет, как я понял из исходного кода функции getenv(...), она не выделяет памяти под ету переменную;
Ответ отправлен: 19.04.2003, 14:09 Отправитель: Ramzes Отвечает vitya
Приветствую Вас, stranger! На самом деле она возвращает указатель на внутренний массив. Как говорится в МСДН - ее изменять в ручную не надо. Лучше вызвать функцию _putenv(). Ответ отправлен: 19.04.2003, 11:05 Отправитель: vitya Отвечает Knignick
Здравствуйте, stranger! Освободить? Думаешь она будет себя "хорошо вести"? ;) чтож попробуй: delete res; и посмотри, что из этого выйдет ;) P.S. Я не думаю, что функция выделят память - просто возвращает адрес, и лучше эту строчку(res) "не трогать".
Ответ отправлен: 20.04.2003, 00:46 Отправитель: Knignick Отвечает akul
Доброе время суток, stranger! Она вернет указатель на строку в памяти где собственно и храниться эта переменная окружения и ничего не выделяет. Следовательно ничего не надо и удалять. Ответ отправлен: 21.04.2003, 03:34 Отправитель: akul Отвечает Avl2k
Доброе время суток, stranger! Функция возвращает указатель на элемент таблицы переменных окружения, адрес которой хранится в перемонной char** environ. Память под эту таблицу автоматически выделяется и освобождается библиотекой CRT, поэтому Вам ее освобождать не надо. С уважением, Avl2k. Ответ отправлен: 21.04.2003, 11:01 Отправитель: Avl2k
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.