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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
yudjin
1 / 1 / 0
Регистрация: 17.01.2010
Сообщений: 18
19.02.2010, 17:14     Освобождение памяти #1
Добрый день.
Пишу в рубрику "Вопросы начинающих по С/С++" посему вопрос глупый И все же, есть такой код

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, и освобождать память для него нельзя. Как тогда передавать значение?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2010, 17:14     Освобождение памяти
Посмотрите здесь:

резервирование памяти/освобождение памяти для трехмерного массива C++
Освобождение памяти C++
C++ освобождение памяти
с++ Освобождение памяти C++
C++ Освобождение памяти
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
insideone
Модератор
Автор FAQ
 Аватар для insideone
3622 / 900 / 47
Регистрация: 10.01.2010
Сообщений: 2,428
19.02.2010, 17:18     Освобождение памяти #2
Освобождать память нужно по тому указателю на который она была выделена. Покажите где вы выделяете память
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);
    }
}
insideone
Модератор
Автор FAQ
 Аватар для insideone
3622 / 900 / 47
Регистрация: 10.01.2010
Сообщений: 2,428
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;
Полагаю так
Yandex
Объявления
19.02.2010, 17:30     Освобождение памяти
Ответ Создать тему
Опции темы

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