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

Не могу разобраться с указателями(не понимаю сути освобождения памяти) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Цикл на проверку введённых данных http://www.cyberforum.ru/cpp-beginners/thread824465.html
Здравствуйте. Мне нужно проверить вводимые данные в двумерный массив. Всё бы хорошо, если бы на последнюю строчку ввода при правильном вводе программа бы не жаловалась. Пример: ввожу всё время 1...
C++ Закрывается ехе-файл Всем доброго время суток! Возникла такая дурацкая проблема, не могу разобраться. Пишу на 10й студии, обычное консольное приложение. Программа работает как надо, но когда запускаю ехе-файл из папки... http://www.cyberforum.ru/cpp-beginners/thread824464.html
Поиск методом золотого сечения C++
Здравствуйте, вот задался целью написать поиск в большом массиве, с помощью метода золотого сечения: вернуть функция должна номер элемента в массиве, если он там есть, -1, в случае, если элемент...
Отобразить количество используемой динамической памяти C++
С помощью средств мониторинга реализовать следующий функционал проги: 1. отобразить кол-во используемой дин. памяти перед объявлением дин. массивов и переменных. 2. отобразить кол-во используемой...
C++ Линейный поиск в числовом массиве с барьером и без барьера по числовому ключу http://www.cyberforum.ru/cpp-beginners/thread824447.html
Линейный поиск в числовом массиве с барьером и без барьера по числовому ключу. Не могу понять почему ругается на поиск с барьером. Помогите разобраться. // lab4.cpp: определяет точку входа для...
C++ Ошибка линковки - error LNK2019: ссылка на неразрешенный внешний символ Что может быть не так? есть файл test.h #ifndef _T_ #define _T_ template<class T> class test { //.... }; подробнее

Показать сообщение отдельно
Stranger777
4 / 8 / 0
Регистрация: 08.02.2013
Сообщений: 47

Не могу разобраться с указателями(не понимаю сути освобождения памяти) - C++

01.04.2013, 01:09. Просмотров 727. Ответов 7
Метки (Все метки)

Вот я тоже дуб в указателях... помогите пожалуйста кому не лениво... с горем пополам заработал Enter (ноуту пора в утиль), и вот (вопросы изложены в комментариях):

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
#include <iostream>
 
using namespace std;
 
class TestResource{
private:
    int ResVar;
    int ResIndex;
    int ResValue;
    int* ResPtr; // указатель, по которому буду обращаться к массиву int'ов
public:
    TestResource::TestResource(int ResVar){ResPtr = new int[ResVar];}; // Вот он массив, параметр передавался в конструкторе.
    ~TestResource(){if(ResPtr){
        delete[] ResPtr; /* Это массиву конец или всё же только первому элементу? 
                         ...или вообще не то?  */
    }};
    int TestResource::setElement(int ResIndex, int ResValue){
        ResPtr[ResIndex] = ResValue;
        return ResValue;
    };
    int TestResource::getElement(int ResIndex){return ResPtr[ResIndex];};
    int* TestResource::returnPtr(){return ResPtr;};
};
 
int main(){
    TestResource* res = new TestResource(20); // создаля массив
    res->setElement(5, 20);
    cout << res->getElement(5) << endl; // Всё верно. Выводится 20, как и надо было.
    res->~TestResource(); // Вот это должно бы по логике вещей уничтожить массив, сообразно delete[] ResPtr.
    cout << res->returnPtr(); /* Но нихрена подобного. Или я всё делаю так, как надо, то есть
                              сообразно вот этому: [url]http://msdn.microsoft.com/en-us/library/6t4fe76c(v=vs.80).aspx[/url], 
                              но не понимаю сути освобождения памяти? почему тут не что-то вроде null, а число, что это за число, если не адрес и почему это работает именно 
                              так, а не иначе? */ 
    getchar();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru