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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2009, 19:18   #1
Mira-girl
Пользователь
 
Регистрация: 08.11.2009
Сообщений: 16
Вопрос помогите, пожалуйста, с удалением массива char в с++!

есть следующий кусок кода:
case 2:
{
char* keyword=new char[300];
cout<<"Enter the key word: ";
cin.ignore();
cin.getline(keyword,strlen(keyword) );
key=GetKey(keyword,keylng);
delete [] keyword;
break;
}
программа вываливается на строке delete [] keyword
не представляю, что это может быть, уже все перепробовала
помогите, плиз...
Mira-girl вне форума Ответить с цитированием
Старый 08.11.2009, 21:29   #2
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

1. cin.getline(keyword,strlen(keyword) );
вместо strlen нужно писать sizeof(keyword), ибо второй параметр этой функции указывает на максимальный размер буфера для строки, а strlen выдает длину строки (кол-во символов до первого завершающего нулла).
2. функция GetKey не изменяет переменную keyword? если изменяет, необходимо быть уверенным, что не происходит переполнения строкового буфера
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 09.11.2009, 00:50   #3
Mira-girl
Пользователь
 
Регистрация: 08.11.2009
Сообщений: 16
По умолчанию

Спасибо огромное!
да, действительно, с sizeof все работает)))))
Mira-girl вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с удалением пробелов при вводе данных в форму Андрей79 PHP 1 22.09.2009 00:05
ПОМОГИТЕ с удалением малыша Софт 3 15.07.2009 23:43
Я вам помогу, пожалуйста! Помогу удалением темы :) Alar Помощь студентам 34 24.05.2009 14:18
Конец числового массива char Байт Общие вопросы C/C++ 4 04.02.2009 21:19
Возвращение массива символов char ActioNs Общие вопросы C/C++ 3 10.01.2009 02:33