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

удаление динамеческого массива в деструкторе - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ malloc vs new http://www.cyberforum.ru/cpp-beginners/thread807166.html
Доброго времени суток. Когда я для выделения памяти пользовался malloc/calloc и освобождал с помощью free, у меня вылетала ошибка: ОС Windows инициировала точку останова в SSL_sockets.exe. Это...
C++ Работа с файлом ofstream file1("C:\\Users\\User\\Desktop\\jewelry.txt"); Ошибка 6 error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "file1" Оъясните как исправить эту ошибку. Спс. http://www.cyberforum.ru/cpp-beginners/thread807163.html
C++ преобразование типов в с++
Собственно вопрос в следующем. Распишите пожалуйста по шагам что происходит при выполнении данного кода { //... myclass x(10); x=12345; //... } С первой строчкой всё ясно -...
C++ Вывести предложения, заканчивающие знаком аопроса
Вывести вопросительные предложения где ошибка? #include <iostream> #include <string> using namespace std; int main() { string s,s4="";
C++ Диапазон чисел - вывести по порядку, указывая сколько строк должно быть http://www.cyberforum.ru/cpp-beginners/thread807153.html
Здравствуйте! Я новичек, и пробую сам изучать С++ решая задачки. Вот собственно застрял на одном вопросе. Знаю что решение довольно простое. Но чегото никак не выходит, и гуглем не мог найти...
C++ Динамический массив произвольного размера динамический массив заданного размера: int *massiv = new int а как организовать произвольного размера? спасибо. подробнее

Показать сообщение отдельно
cskurt
0 / 0 / 0
Регистрация: 04.03.2013
Сообщений: 14
13.03.2013, 12:23  [ТС]
Не совсем, если чесно уловил мысль, в моём представлении что должно произойти (писал я в основном на ассемблере, так что и логика такая).
Код выполняется постепенно, те по мере поступления в цп, при первом вызове мы должны создать область памяти (вырезать), нам не важно где она и как, мы знаем что для доступа к ней у нас есть начальный блок и знаем сколько мы вырезали, не переходим за этот размер так как в памяти есть другие данные, если мы туда начнём лезть то обязательно что-то затрём.
Дальше мы в эту область памяти, начиная с первого указателя (начальная ячейка памяти), кидаем рандомные данные, достигнув конца нашей области мы перестаём это делать и идём дальше по коду.
Дальше идёт конструктор по умолчанию, он так же хватает область памяти (свободной) и мы туда пишем наши данные.
Потом мы их отрабатываем и удаляем эти области из системы, делая их вновь свободными.

Может я не понимаю принципа работы компилятора с++ или самой системы распределения памяти, но как если мы вызываем отдельный конструктор Matrix(int n,int m) и выделяя mass1 нас должно волновать что происходит с mass2? Да оно болтается, но оно еще и не используется. Потом вызываю по молчанию Вы написали что останется болтаться mass2, разве если я уж чего-то не понял то при первом вызове mass1 не болтался, а при втором когда мы должны были определить mass2 он у нас по прежнему болтается? Может там ошибка и болтаться у нас останется mass1? Вот что я не могу уловить, мы вызвали 2 разных конструктора, которые должны были дать нам области, как у нас может что-то после этого исчезнуть? Хотя я сейчас попробую вникнуть в ваши слова, но я скорее не понимаю принцип работы пары конструкторов и потом вызова деструктора для них обоих. На примере (самом простом) мне было бы куда яснее.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru