Форум программистов, компьютерный форум CyberForum.ru

выделение и освобождение памяти - C++

Восстановить пароль Регистрация
 
TonyTaponi
1 / 1 / 0
Регистрация: 16.11.2010
Сообщений: 7
07.11.2011, 15:40     выделение и освобождение памяти #1
В моей программе есть следующий код:

C++
1
2
3
4
5
6
7
8
9
10
   char* lexems[64]; // массив указателей на символ
 
   char* lexem;      // вспомогательная переменная для хранения слова
   char string[256] = "The quick brown fox jumps over the lazy dog";
   lexem = strtok(string," ,.-");
   
   lexems[0] = new char[strlen(lexem) + 1];
   lexems[0] = lexem;
   
   delete [] lexems[0];
во время выполнения последней строки выдается ошибка, как будто программа пытается освободить невыделенную область памяти, но она выделена тремя строками выше. Из-за чего это может быть?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
07.11.2011, 15:57     выделение и освобождение памяти #2
C++
1
 lexems[0] = lexem;
Неверно.

Надо:
C++
1
strcpy(lexems[0], lexem);
Mustik
56 / 56 / 2
Регистрация: 10.07.2011
Сообщений: 229
07.11.2011, 16:06     выделение и освобождение памяти #3
Цитата Сообщение от ForEveR Посмотреть сообщение
C++
1
 lexems[0] = lexem;
Неверно.

Надо:
C++
1
strcpy(lexems[0], lexem);

Ошибка на delete

А, все, понял. Вы правы
TonyTaponi
1 / 1 / 0
Регистрация: 16.11.2010
Сообщений: 7
07.11.2011, 16:20  [ТС]     выделение и освобождение памяти #4
Да, что-то туплю, спасибо.
Yandex
Объявления
07.11.2011, 16:20     выделение и освобождение памяти
Ответ Создать тему
Опции темы

Текущее время: 22:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru