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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
yudjin
1 / 1 / 0
Регистрация: 17.01.2010
Сообщений: 18
#1

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

19.02.2010, 17:14. Просмотров 1125. Ответов 3
Метки нет (Все метки)

Добрый день.
Пишу в рубрику "Вопросы начинающих по С/С++" посему вопрос глупый И все же, есть такой код

C++
1
2
3
4
5
6
//offset - массив байт. Т.е., читаю с определенной позиции сразу в дабл
double* Xmin=(double*)&offset[*from];
outShape->Points()[i].set_X(*X);
 
//Надо бы освободить память
delete Xmin; //Run time ошибка
Прототип функции set_X:

C++
1
void set_X(double x){m_dX=x;};
Подскажите, как правильно освобождать память в данном случае. Потому что все это в цикле на десятки тысяч итераций, и жрет прилично.
Я так понимаю, m_dX зависит от указателя Xmin, и освобождать память для него нельзя. Как тогда передавать значение?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2010, 17:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Освобождение памяти (C++):

резервирование памяти/освобождение памяти для трехмерного массива - C++
Необходимо создать трехмерный массив (A), в котором элементы вдоль направления Z выли бы выровнены по 16 байт. Есть две проблемы: ...

Освобождение памяти - C++
Похоже что проблема с освобождением памяти. У меня есть абстрактный класс CObject и его потомок CMeteor, в котором реализованы...

с++ Освобождение памяти - C++
Здравствуйте, объявляю в классе: А ** а; Далее выделяю память в функции: а=0; a = new A*; for(uint i=0;i<5;++i) { a =...

Освобождение памяти - C++
Добрый день. Подскажите пожалуйста, почему возникает ошибка при уничтожение массива class MyClass { public: int *data; int...

Освобождение памяти - C++
Маленький вопросик, как правильно освобождать память выделенную под vector<...>, деструктором ~vector() или методом clear() ?

Освобождение памяти - C++
Товарищи,недавно баловался в Microsoft VS,готовился к экзаменам,писал небольшие програмки с использованием динамических массивов.Память под...

3
insideone
Модератор
Автор FAQ
3642 / 921 / 50
Регистрация: 10.01.2010
Сообщений: 2,477
19.02.2010, 17:18 #2
Освобождать память нужно по тому указателю на который она была выделена. Покажите где вы выделяете память
0
yudjin
1 / 1 / 0
Регистрация: 17.01.2010
Сообщений: 18
19.02.2010, 17:28  [ТС] #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void CShpPolygon::CrShape(CVecPolygon* outShape,const unsigned char* offset,int* from)
{
    //....
     double* X = new double;
    //....
    for (int i = 0; i < *iPoints; i++)
    {
        X=(double*)&offset[*from];
        *from+=sizeof(double);
                       //....
        outShape->Points()[i].set_X(*X);
    }
}
0
insideone
Модератор
Автор FAQ
3642 / 921 / 50
Регистрация: 10.01.2010
Сообщений: 2,477
19.02.2010, 17:30 #4
C++
1
2
3
4
5
6
7
8
double* Xmin = new double;
double* Ymin = new double;
 
double* SaveXmin = Xmin;
double* SaveYmin = Ymin;
/* code code code */
delete SaveXmin;
delete SaveYmin;
Полагаю так
0
19.02.2010, 17:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2010, 17:30
Привет! Вот еще темы с ответами:

Освобождение памяти - C++
Собственно есть простенький класс class Human { public: Human ( ); void ptintHuman(); private: static long...

освобождение памяти - C++
Помогите найти ошибку, программа вилиться когда освобождаю память! Здесь выделения памяти double **CreateArray() { double...

Освобождение памяти - C++
#include&lt;iostream&gt; #include&lt;cstring&gt; using namespace std; struct stringy{ char * str; int ct; }; stringy &amp; set(stringy &amp;...

Освобождение памяти - C++
Как сделать, чтобы при вызове деструктора экземпляра i класса image, вызвался и деструктор класса image_bmp? class image { public:...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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