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

как освободить память? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ нарисовать муравья http://www.cyberforum.ru/cpp-beginners/thread908752.html
помогите нарисовать муровья
C++ Вопросы по наследованию Вопрос ещё по конструкторам Допустим есть система классов class A { public: A() {} }; class B: public A { http://www.cyberforum.ru/cpp-beginners/thread908743.html
Наследник класса, переопределение функции C++
Доброго времени суток! Есть не виртуальный класс, от него необходимо наследоваться и перегрузить одну из функций. Входные параметры будут такие же, как и у существующей, имя функции необходимо оставить тоже! Можно ли это вообще сделать, или придется какой-либо фиктивный входной параметр добавлять, либо вообще в корне менять имя функции?
C++ Разработать класс, набор методов для программной модели заданного объекта
Разработать класс, набор методов (конструктор, деструктор и указаны методы) для программной модели заданного объекта. Описание объекта и его основных свойств приводится ниже. Привести программу (int main), использующая объекты разработанного класса: Объект «рациональный НЕ сократимых дробь, представлен парой целых чисел». Конструктор должен позволить создавать объекты без и с начальной...
C++ Не могу найти ошибку! http://www.cyberforum.ru/cpp-beginners/thread908713.html
#include <graphics.h> #include<math.h> int xc=200,yc=200; int xe,ye; int mx=20; int my=20; int a=-7, b=7; int a1=4, b1=2;
C++ Двумерный массив - ошибка приведения типов Приветсвую. Столкнулся с такой проблемой, точнее не с проблемой а с вопросом. допустим: имеется функция Function; void Function( double *(points)); Которая что-то делает. Приводить определение не имеет смысла. При вызове ее: int main(int argc, char **argv) { Function(points); } Компилятор естессно ругается : Error 1 error C2664: 'Function' : cannot convert parameter 1 from 'double ' to... подробнее

Показать сообщение отдельно
DPS
32 / 32 / 3
Регистрация: 12.11.2011
Сообщений: 109
Завершенные тесты: 1

как освободить память? - C++

21.06.2013, 14:30. Просмотров 344. Ответов 3
Метки (Все метки)

Здравствуйте!!! Почему-то никак не освобождается память, выделенная оператором new под двумерный массив типа char,- как только идет освобождение, программа выдаем ошибку.

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
27
28
29
30
#include<iostream>
#include<cstring>
using namespace std;
 
const size_t AMOUNT_WORDS   = 2;        //максимальное кол-во слов
const size_t MAX_LENGHT_WORD    = 4;        //размер слова(в реале будет на 1 символ меньше)
 
 
int main()
{
     setlocale(LC_ALL, "Rus");
 
char **str2 = new char*[AMOUNT_WORDS];      //выделяем память 
    
    for(size_t i = 0; i < AMOUNT_WORDS; ++i)    //и еще раз
        str2[i] = new char [MAX_LENGHT_WORD];
 
    strcpy(str2[0], "123");         //инициализируем строки
    strcpy(str2[1], "456");
 
    for(size_t i = 0; i < AMOUNT_WORDS; ++i)    //выводим на экран
        cout << str2[i] << endl;
 
    //for(size_t i = 0; i < MAX_LENGHT_WORD; ++i)       //чистим память?????
    //  delete  [] str2[i];
 
    //delete [] str2;
 
    return 0;
}
Вроде все правильно очищаю... Вот так создается и очищается двумерный массив типа int, я вроде по аналогии сделал...


C++
1
2
3
4
5
6
7
8
9
10
11
    
 
int **mass = new int*[3];
 
    for(int i = 0; i != 3; ++i)
        mass[i] = new int [2];
 
    for(int i = 0; i != 2; ++i)
        delete [] mass[i];
 
    delete [] mass;
Или есть какие-то особые тонкости?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru