![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#11 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
![]()
Павел_95.
Не видя картины в целом, я просто в недоумении, что за сложности на ровном месте. Может этот switch у Вас внутри цикла? static char *text = NULL; // спасет? |
![]() |
![]() |
![]() |
#12 |
Пользователь
Регистрация: 04.11.2012
Сообщений: 22
|
![]()
EUGY, большое спасибо, да, в цикле... видимо это важно, извините, забыл написать. Ваш static очень помог! Спасибо большое. Только есть еще 1 проблемка: если я, например, заполняю данный массив символами, то он сохраняется,все отлично, вывожу его и все показывает, но если я как-бы добавляю символы(опять же нажимаю выбор кейса №1 и ввожу новые данные), то когда вывожу весь массив во 2-ом кейсе у меня то, что я писал ранее искажается... Например, сначала я написал :"вот вот вот", сохранил все, оно у меня и вывело "вот вот вот". Пока все отлично. Но когда ввожу заново(например это : "раз, два, три") и вывожу, то получаю такое:
"============ раз , два, три" Где "==========" - я подразумеваю мое "вот вот вот". Может вы знаете, чем вызвана эта ошибка? |
![]() |
![]() |
![]() |
#13 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,430
|
![]()
Если Вы только вынесли static char *text = NULL за пределы кейса, то ничего удивительного. У Вас размер хранится в count_simbol. Вы вызываете new, таким образом теряя старое значение *text (утечка памяти). При этом, массив заполняется мусором, скорее всего. Затем Вы копируете строку своей функцией - тут ничего не могу сказать, т.к. не вижу листинга. Из-за того, что count_simbol не обнуляется, новая строка длиннее, чем нужно для текущего ввода, из-за вызова new теряется старая информация. Напишите, что Вы пытаетесь сделать/хотите получить.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#14 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
![]()
1) count_simbol в первом кейсе обнулять надо.
2) Если static помог, то вынести объявление text вообще из цикла и static можно убрать. Павел_95, есть такая штука, как пошаговая отладка. Вы ей не пользуетесь? То есть приостановить выполнение программы на любой инструкции и просмотреть состояние всех интересующих переменных в этот момент. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
switch и case C++ | countteran | Общие вопросы C/C++ | 18 | 06.04.2013 20:52 |
C++ switch case | frozen__11 | Общие вопросы C/C++ | 6 | 11.11.2012 23:16 |
switch и case | symrak | Общие вопросы C/C++ | 2 | 24.01.2012 15:17 |
switch - case 1 to 5 | boris-blade | Общие вопросы .NET | 1 | 12.03.2010 07:13 |