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

Ошибка при использовании оператора delete в Visual Studio 2010 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Спроектировать и реализовать класс BigInt http://www.cyberforum.ru/cpp-beginners/thread266777.html
Нужно спроектировать и реализовать класс BigInt, позволяющий хранить целые числа в диапазоне , и производить набор основных операций с ними. В классе должны быть определены различные конструкторы...
C++ Программа подсчета результатов выступления спортсменов по прыжкам с трамплина Struct sportsme +массив указателей { * misce Char famil ; Int... http://www.cyberforum.ru/cpp-beginners/thread266771.html
C++ Динамическое программирование.Удаление строки
Дана строка S, состоящая из n маленьких латинских букв. За один ход Вам разрешается удалить один или несколько подряд идущих одинаковых символов. Необходимо удалить все символы из строки S за...
Объединить три 2-мерных массива в один 3-мерный массив C++
Первый двухмерный задан рандомно. Второй и третий двухмерные заданы как результаты вычислений от функцый (табуляция по Х, У, А и В). Надо что б из этого всего получился 3-мерный массив. Который...
C++ неполадки с кампилятором http://www.cyberforum.ru/cpp-beginners/thread266750.html
я сегодня уже писал о том что ищу графическую библиотку для Dev-Cpp на сайте константина полякова нашел то что искал и сделал все следуя инструкциям, но груфака так и не работает. в самой простой...
C++ Решение СЛАУ методом Гаусса помогите разобраться!!ВЫдает 85 ошибок!!!! #include <stdio.h> #include <conio.h> #include <tchar.h> #include <iostream> #include <stdlib.h> #include <time.h> #define eps 0.0000000001 class... подробнее

Показать сообщение отдельно
bigredcat
366 / 313 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
30.03.2011, 06:55
Подозреваю, что вы здесь делаете совсем не то, что хотели:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
char **month = new char* [12];
for (int i = 0; i < 12; i++)
{
    // Выделяете память и устанавливаете на нее указатель month[i]
    month[i] = new char[20];
 
    // Здесь вы не копируете строки, а устанавливаете этот же указатель month[i]
    // на константную строку, т.е. заносите в month[i] новый адрес. А память
    // выделенную ранее теряете. Вы вот посмотрите в отладчике что с адресом
    // хранимым в month[i] произойдет дальше.
    switch(i)
    {
    case 0 : month[i] = "Январь"; break;
    case 1 : month[i] = "Февраль"; break;
    case 2 : month[i] = "Март"; break;
    case 3 : month[i] = "Апрель"; break;
    case 4 : month[i] = "Май"; break;
    case 5 : month[i] = "Июнь"; break;
    case 6 : month[i] = "Июль"; break;
    case 7 : month[i] = "Август"; break;
    case 8 : month[i] = "Сентябрь"; break;
    case 9 : month[i] = "Октябрь"; break;
    case 10 : month[i] = "Ноябрь"; break;
    case 11 : month[i] = "Декабрь"; break;
    }
}
А потом вы пытаетесь освободить память, которую не выделяли динамически
C++
1
2
for (int i = 0; i < 12; i++)
    delete [] month[i];
Не знаю как уж переваривает это GCC
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru