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

Удаление структуры из динамической памяти - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вытащить текст из файла http://www.cyberforum.ru/cpp-beginners/thread155584.html
как в массив закинуть содержимое body? я делаю без регулярных выражений, у меня получается вытянуть body, только если body открывается и закрывается в одной строке до этого читал посимвольно и тот вариант пропускал не то что нужно у меня вопрос: как читая построчно файл, удалить в нем не целую строку, а оставить часть файл состоит из нескольких строк <HTML><HEAD>...
C++ Календарь текущего месяца Добрый вечер, вот задали сделать календарь текущего месяца. Сделал. Подскажите можно как-то упростить код??? #include <iostream> using namespace std; void main() { cout<<"\tMon\tTue\tWed\tThu\tFri\tSat\tSun\n"; for(int i=1; i<=7;) { http://www.cyberforum.ru/cpp-beginners/thread155552.html
Указатель void на структуру C++
Есть некий тип структуры action. Для функции _beginthread третьим параметром требуется указатель на void. Как преобразовать структуру в указатель типа void? Если попробовать (void *)pParams пишет: error C2440: приведение типов: невозможно преобразовать 'action' в 'void *' pParams - переменная типа action.
Кто работал с OpenCV? C++
Вопрос в следующем. Нужно реализовать программу, которая будет выделять из изображение необходимый объект (объект лежит на столе, камера снимает сверху). После сегментации высчитать размер этого объекта. Из адекватных инструментов нашел библиотеку Open CV. Но не уверен, подойдет ли она для решения данной проблемы. Вот собственно, сами вопросы: 1) Если ли внятная документация по этой...
C++ Создание cpp файлов http://www.cyberforum.ru/cpp-beginners/thread155510.html
я недавно начал зучать язык программированя С++ и делаю это самостоятельно с помашю книг и интернета. я ищю статьи где было бы подробно описанно для каких функции какие файли создаються например для написания простого математического задания можно использовать файл .cpp, я так понимаю но у меня и с этим тоже проблемы, недавно я открыл "project", в ней файл .срр но когда я в этом же проекте...
C++ Как сделать свою формат-функцию? навроде void logtofile(const char * _Format, ...) { FILE * pFile; pFile = fopen ("log.txt","a"); fprintf (pFile, formatted_string); fclose (pFile); } подробнее

Показать сообщение отдельно
AspUser
0 / 0 / 0
Регистрация: 25.07.2010
Сообщений: 3
12.08.2010, 12:05  [ТС]
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
void DeleteTape(aTapeElement *TapeRoot)
{
/*
* Если удалять через ссылки (&),
* в частности операнд,
* то происходит ошибка в распределении памяти.
* Если сослаться структуру или массив структур,
* то из памяти удаляются лишь первый (или все) оператор(ы).
* Удаление через укаазтели (*) нереально.
* Компилятор пишет, что неверный аргумент для unary.
*/      
    if (TapeRoot != NULL)
    {
        aTapeElement *DeleteTapeRoot = TapeRoot; // Создаём ссылку для попытки удалить структуру с данными.
        
/*      delete [] DeleteTapeRoot; // Попытка удалить как массив структур.
 *      // Удаляет только оператор. Операнд не удаляет.
 */
 
/*      delete DeleteTapeRoot; // Попытка удалить как структуру.
 *      // Удаляет только оператор. Операнд не удаляет.
 */
        
/*      DeleteTapeRoot->Operator = NULL; // Попытка обнулить опаратор
 *      DeleteTapeRoot->Operand = NULL; // Попытка обнулить операнд
 *      // Опаранд = 0. Неудача.
 */
        
        (*DeleteTapeRoot).~aTapeElement(); // Вызывается деструктор.
        
            Accumulator(reset); // Обняляем сумматор.
    }
    
    /*
     * Если лента не наполнена,
     * то нужно об этом доложить.
     */
    
    else
    {
        cout << "Лента пока не наполнена. " << endl;
    };
    
    
};



//////////////////////////////////////////////////


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
struct aTapeElement
{
    
    char Operator;
    float Operand;
    aTapeElement *NextElement;
    
    ~aTapeElement(void) // Деструктор.
    {
        NextElement = NULL;
        
        Operator = '*';
        Operand = 0;
 
/* У меня не получилось удалить первые элементы структуры,
 * как и саму структуру из динамической памяти,
 * однако я поступил хитрее, перезаписав значения первого оператора и
 * первого операнда, придал значение NULL следующему элементу и
 * лента стала перезаписываться, хоть и не с самого начала.
 * Теперь нужно выяснить: Что же делается с памятью ?
 * Не произойдёт ли переполнение буфера.
 */
    };
 
};

/////


В моём случае удаление через указатели не удалось.
Слишком сложная программа, наверное.
malloc.h пока не пробовал.
Последний пример тоже.

//////

Скажите.
Мой пример сможет замещать содержимое ячеек памяти или он тупо создаёт новые и
происходит учетчка памяти ?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru