![]() |
|
Модераторы: bsa |
![]()
|
|
| SergMilk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 29.4.2009 Репутация: нет Всего: нет |
Привет!
Дублирую пост с ixbt... Подскажите, пожалуйста, по-поводу new и delete. Попытался написать функцию с динамическим массивом, компилируется, но во время работы выдает ошибку :(
Подскажите, никак не могу поправить ... Спасибо! |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
||||
|
||||
| azesmcar |
|
||||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
1. с каких пор функция sprintf принимает CString (вот говорят же не используйте функции с переменным числом параметров, и все зря). 2.
тут выделяется недостаточно памяти, ты забыл про \0 3.
зачем это? if (TextBuffer[i] > '0' && TextBuffer[i] < '9' ... ) и тому подобное отменили? Exactly. |
||||||
|
|||||||
| bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
zim22, дело тут не в MFC.
SergMilk Ты уверен, что на входе в функцию, cTextToClear не является пустой строкой?
Короче, делать лучше так (только я MFC не знаю, поэтому может быть ошибка в плане использования операторов CString):
|
||||
|
|||||
| Gordon |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 9.7.2006 Репутация: 1 Всего: 6 |
чуть-чуть
-------------------- |
||||
|
|||||
| SergMilk |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 29.4.2009 Репутация: нет Всего: нет |
О, спасибо, большое!
Пока написал пост и вернулся на рабочее место, мне уже указали, что я про нуль-терминатор в строке забыл. Насчёт совместного использования CString и sprintf это я вообще не особо понимаю, поэтому так коряво и пишу. bsa, а ты какую библиотеку используешь в основном? P.S. и еще, почему в цикле используешь префиксный инкремент? Разве не с
Если чё не так сказал - не смейтесь Кстати, чем плохо CString в буфер через sprintf загонять? чем экземпляр этого класса так кардинально отличается от массива символов?
Это сообщение отредактировал(а) SergMilk - 30.7.2009, 20:26 |
||||
|
|||||
| Gordon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 459 Регистрация: 9.7.2006 Репутация: 1 Всего: 6 |
Префиксный инкремент, в некоторых случаях, считается более эффективным... имхо И начинается с чего и должно начаться т.е.
Это сообщение отредактировал(а) Gordon - 30.7.2009, 20:20 -------------------- |
|||
|
||||
| SergMilk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 29.4.2009 Репутация: нет Всего: нет |
Упс, пока MSDN читал и примеры пробовал уже ответили насчёт цикла for
А Вы какие библиотеки для С++ используете? Это сообщение отредактировал(а) SergMilk - 30.7.2009, 21:00 |
|||
|
||||
| Леопольд |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 3 Всего: 13 |
Разные. Если тебя интересуют GUI библиотеки, то советую обратить внимание на Qt или wxWidgets . На MFC своё время тратить не стоит. Ещё есть STL (Standard Template Library), которая является неотемлемой частью С++. В ней тоже много чего полезного, тот же std::string, например. Так же следует посмотреть на Boost, часть которого войдёт в следующую версию STL. Это сообщение отредактировал(а) Леопольд - 31.7.2009, 09:22 -------------------- вопросов больше чем ответов |
|||
|
||||
| bsa |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
В зависимости от проекта. Или самописное, или Qt.
Префиксная форма предпочтительней везде, где не нужна постфиксная. Почему? Поищи поиском или реализуй функциональность сам и сравни. Кстати, цикл for() легко раскладывается на составляющие: for(A;B;C) X;
От тебя требуют тип const char*, а ты подсовываешь CString. Это в корне неверно, даже если и работает сейчас (например, потому что класс CString содержит в себе первым атрибутом указатель на начало строки), то это не значит, что завтра (после того, как МС внесет изменения в этот класс) или при попытатке использовать в sprintf более одного параметра все будет так же работать. Это сообщение отредактировал(а) bsa - 31.7.2009, 16:51 |
||||||||
|
|||||||||
| SergMilk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 29.4.2009 Репутация: нет Всего: нет |
А из Visual Studio 6 можно писать с использованием библиотек Qt или Boost или STL? И как справку вызывать по библиотеке? Так MSDN по F1 вызывается, но там про MFC только
|
|||
|
||||
| Леопольд |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 3 Всего: 13 |
Как правило, документацию по библиотеке можно найти на сайте библиотеки
-------------------- вопросов больше чем ответов |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
SergMilk, документация по Qt тут: http://www.qtsoftware.com/developer
Кстати, на их сайте можно скачать Qt Creator - среду разработки с использованием Qt. Рекомендую (начать писать программы с использованием Qt намного проще, чем в случае Visual Studio - так как не нужно ничего чужого компилировать). Документация по boost тут: http://www.boost.org/libs/libraries.htm Документация по STL должна быть во встроенной правке, если компилятор укомплектован этой библиотекой. Устаревшие компиляторые могут не иметь ее в комплекте. Я же пользуюсь: http://www.sgi.com/tech/stl/ и http://www.cplusplus.com/reference/ |
|||
|
||||
| Леопольд |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 3 Всего: 13 |
bsa, видимо, имеет ввиду что не надо компилировать саму библиотеку Qt для Visual Studio. -------------------- вопросов больше чем ответов |
|||
|
||||
| SergMilk |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 25 Регистрация: 29.4.2009 Репутация: нет Всего: нет |
Спасибо за ссылки !
Qt Creator я уже устанавливал, но ничего кроме калькулятора я на нём не делал :(. И я не понял, сам файл .cpp надо во внешнем редакторе всё равно писать?? Просто на работе те, с кем я взаимодействую пишут в 6 Студии. Так вот вопрос, могу я в этой 6 студии использовать все те библиотеки, которые вы рекомендуете и которые пользуются спросом на рынке, без ущерба во взаимодействии с другими разработчиками. И могу ли я писать в 8 студии, так, чтобы мои проекты могли открываться, компилироваться и запускаться людьми, у которых стоит 6я студия В 8й Студии писал несколько консольных приложений типа игры жизнь, сортировок, и т.п. Но на С#. Borland C builder тоже устанавливал и делал в нём те же приложения вроде калькулятора, т.к. на предыдущей работе народ на 6м билдере сидел. Кто-нибудь знаком с ВНИИСовскими вещами типа МСВС3.0 , Qt Конструктор (3.3 версия Qt)? Это сообщение отредактировал(а) SergMilk - 1.8.2009, 17:08 |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |