Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2013, 02:21   #11
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Павел_95.
Не видя картины в целом, я просто в недоумении, что за сложности на ровном месте.
Может этот switch у Вас внутри цикла?
static char *text = NULL; // спасет?
EUGY вне форума Ответить с цитированием
Старый 11.01.2013, 13:57   #12
Павел_95
Пользователь
 
Регистрация: 04.11.2012
Сообщений: 22
По умолчанию

EUGY, большое спасибо, да, в цикле... видимо это важно, извините, забыл написать. Ваш static очень помог! Спасибо большое. Только есть еще 1 проблемка: если я, например, заполняю данный массив символами, то он сохраняется,все отлично, вывожу его и все показывает, но если я как-бы добавляю символы(опять же нажимаю выбор кейса №1 и ввожу новые данные), то когда вывожу весь массив во 2-ом кейсе у меня то, что я писал ранее искажается... Например, сначала я написал :"вот вот вот", сохранил все, оно у меня и вывело "вот вот вот". Пока все отлично. Но когда ввожу заново(например это : "раз, два, три") и вывожу, то получаю такое:
"============
раз , два, три"
Где "==========" - я подразумеваю мое "вот вот вот". Может вы знаете, чем вызвана эта ошибка?
Павел_95 вне форума Ответить с цитированием
Старый 11.01.2013, 14:16   #13
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Если Вы только вынесли static char *text = NULL за пределы кейса, то ничего удивительного. У Вас размер хранится в count_simbol. Вы вызываете new, таким образом теряя старое значение *text (утечка памяти). При этом, массив заполняется мусором, скорее всего. Затем Вы копируете строку своей функцией - тут ничего не могу сказать, т.к. не вижу листинга. Из-за того, что count_simbol не обнуляется, новая строка длиннее, чем нужно для текущего ввода, из-за вызова new теряется старая информация. Напишите, что Вы пытаетесь сделать/хотите получить.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 11.01.2013, 14:18   #14
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

1) count_simbol в первом кейсе обнулять надо.
2) Если static помог, то вынести объявление text вообще из цикла и static можно убрать.

Павел_95, есть такая штука, как пошаговая отладка. Вы ей не пользуетесь? То есть приостановить выполнение программы на любой инструкции и просмотреть состояние всех интересующих переменных в этот момент.
EUGY вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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