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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
TonyTaponi
1 / 1 / 0
Регистрация: 16.11.2010
Сообщений: 7
#1

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

07.11.2011, 15:40. Просмотров 450. Ответов 3
Метки нет (Все метки)

В моей программе есть следующий код:

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];
во время выполнения последней строки выдается ошибка, как будто программа пытается освободить невыделенную область памяти, но она выделена тремя строками выше. Из-за чего это может быть?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2011, 15:40     выделение и освобождение памяти
Посмотрите здесь:

C++ Динамическое освобождение и выделение паямти под двумерные массивы
C++ выделение памяти и никогда не выполняете* ее освобождение
C++ Указатели на строки. Выделение и освобождение памяти
C++ Выделение и освобождение памяти в c++
Освобождение и выделение памяти C++
C++ Выделение и освобождение памяти
C++ Выделение-освобождение памяти
C++ Выделение и освобождение памяти в конструкторе и деструкторе
Как правильно записать в виде функции выделение памяти для двумерного массива и ее освобождение C++
C++ Освобождение и выделение динамической памяти
C++ Выделение и освобождение памяти для локальных переменных функций
C++ Выделение и освобождение памяти

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 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     выделение и освобождение памяти
Ответ Создать тему
Опции темы

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