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

Ссылки и оператор new! - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Составить блок-схему по коду http://www.cyberforum.ru/cpp-beginners/thread95703.html
Извините конечно, что так поздно, но может кто нибудь построить блок схему: template <class t>t udal(t n,t *a) {int k,i,j,c; c=0; k=0; do { for(i=0;i<n;i++) {for(j=i+1;j<n;j++) {if(a==a)
C++ Передача указателей в функции Привет всем. Вообщем изучаю с\с++ по книге Павловской, дошел до динамических структур данных(списки, стеки, очереди...), Вообщем наткнулся там на пример списка, не могу понять как передаються ьам... http://www.cyberforum.ru/cpp-beginners/thread95700.html
C++ Виртуальные функции. Абстрактные классы.
Есть у меня абстрактный класс class DataManager { protected: Configuration configuration; public: DataManager(Configuration config); ...
Описать процедуру, меняющую содержимое переменных X и Y C++
вот тут решил разобраться с языком си, решал задачки и вот напоролся на такую: Описать процедуру Swap(X, Y), меняющую содержимое переменных X и Y. Собстна как сделать такую штуку?
C++ Ввод и вывод вектора http://www.cyberforum.ru/cpp-beginners/thread95639.html
Такой вопрос. Программа должна вводить вектор из случайных чисел и выводить его на экран. При этом ввод и вывод нужно оформить в виде отдельных функций. Вопрос же в следующем: если я делаю это всё...
C++ c++ в кпк Вобщем начну с самого начала. Захотел я изучит c++, до этого работал с php в wap, но так как комп згорел, а на новый щас дениг нет поставил я на кпк pocket gcc и немогу найти инфу по програмированию... подробнее

Показать сообщение отдельно
Monte-Cristo
2790 / 1376 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
15.02.2010, 22:13
Цитата Сообщение от Alexandr_LN Посмотреть сообщение
ЧТО будет с ссылкой, на что она будет ссылаться???
еще раз повторяю.

ссылка - это псевдоним. она как была псевдонимом *pint так и останется. ибо
C++
1
delete pint;
на сам pint никак не влияет.

Лучше задай вопрос, что происходит с переменной pint. Она хранит адрес.

Когда ты делаешь
C++
1
int *pint=new int(5);
у нас выделяется область памяти под переменную типа int (причем переменная инициализуерся значением 5) и возвращается адрес выделенной области памяти, который присваевается переменной-указателю pint.

Когда ты после этого делаешь
C++
1
delete pint;
у тебя область памяти удаляется (если быть конкретней, то помечается как свободная память, поэтому некоторое время там вполне может хранится значение 5), но переменная pint как была так и осталась.. более того, она продолжает содержать адрес того участка памяти, на который она ссылалась. Но данный участок памяти более не принадлежит нашей программе, более того, там могут располагаться жизненно важные данные другой программы и запись в эту область может очень повредить (хотя сработают методы защиты, но все же их тоже можно обойти). поэтому лучше всегда делать так:

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