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

Как работает динамическое выделение памяти под объект? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Возврат объекта класса из функции http://www.cyberforum.ru/cpp-beginners/thread808745.html
Имеется следующий код: #include "stdafx.h" #include <iostream> using namespace std; /*Задача: Определить класс список элементов. В определение класса включить два конструктора для определения списка по его размеру и путем копирования другого списка. Определить операции над списком:
C++ Описать класс Матрица Описать класс Матрица. C++ http://www.cyberforum.ru/cpp-beginners/thread808735.html
C++ Производные
Привет всем! У меня такая проблема: надо написать программку, которая бы выдала вид прозводной, например, на вход подается f=y*x-2*y^2, необходимо производную по у написать, на выходе должно получиться: df/dy = -4*y с чего начать???? какие методы, алгоритмы можете посоветовать? Помогите!
C++ Непонятки со списком
Нашёл код в интернете и немного не понимаю его в некоторых местах. Объясните мне пожалуйста, зачем в коде вот тут: strcpy(spis->data,"0"); // инициализируем его данными spis->next = NULL; // следующий элемент - NULL start = spis; // запоминаем начало 1) зачем ставить spis->next = NULL; ? Ведь он потом всё равно ставится так spis->next = new Node; Как бы не...
C++ поиск обратной матрицы http://www.cyberforum.ru/cpp-beginners/thread808728.html
дана матрица A(почти матрица гильберта-отличается только 1-ая строчка): 1 1 1 1... 1/2 1/3 1/4 1/5... 1/3 1/4 1/5 1/6... ............................. нужно найти обратную к данной матрице, используя LU- разложение матрицы(разложение на нижнетреугольную и верхнетреуг.) т.е. в кратце как-то так: для поиска обратной матрицы нужно решить уравнение А*Х=Е(единичная...
C++ Найти количесво четных элементов матрицы Нужно найти количество четных элементов матрицы в каждой строчке. Написала код, по идее ответ должен быть таким сумма=1,сумма=2,сумма=3. а вылезает сумма=1,сумма=1,сумма=1 помогите, пожалуйста, найти ошибку. #include <stdio.h> подробнее

Показать сообщение отдельно
mzarb
-211 / 7 / 1
Регистрация: 14.01.2013
Сообщений: 141
15.03.2013, 21:48  [ТС]     Как работает динамическое выделение памяти под объект?
Цитата Сообщение от Vourhey Посмотреть сообщение
Значение указателя и есть адрес
Цитата Сообщение от Vourhey Посмотреть сообщение
Что значит "вернуть с именем"?
Я понимаю, что значение указателя - это адрес на то, куда он указывает и наверное это не принципиально важно, но когда new возвращает что-то, к примеру адрес содержащийся в значении возвращаемого указателя, то будет присвоение уже вне функции, где-то возле вызова и выглядеть это будет как : void* noname = p, где p это указатель, который вернула new, а void * noname то, что приняло его.То есть технически все же возвращается указатель без имени содержащий в своем значении адрес на выделенную память, который вернулся с new по указателю, который содержал его? Хотя опять же в данном случае это большой роли не играет, так как все ровно обратится к этому указателю не получится. То есть не важно что подставится в виде объекта, адрес, который вернул new или все же указатель без имени содержащий этот адрес? Откуда я это все взял? Вот ссылка
Цитата Сообщение от Vourhey Посмотреть сообщение
Кто инициализирует память нулями? Конструктору, опять же, не важно, что лежит в памяти в общем случае. Он знает смещения, ему этого достаточно.
А конструктор, который запустится без параметров или поумолчанию, он же будет инициализировать объект на выделенной памяти, но а что тогда подразумевается под инициализацией? Или если без параметров запускать, то инициализации нету, а есть только объявление, но в случае с классами объявление объектов и есть их инициализация даже если нету передачи аргументов в конструктор. Вообщем, код A a; создаст объект и запустит конструктор поумолчанию, а этот конструктор будет что-то делать, то есть какую-либо инициализацию?
Цитата Сообщение от Vourhey Посмотреть сообщение
Адрес не после типа, а после new в скобках.
Допустим есть код A *p = new A();. Так вот A() - это же не конструктор, то есть не вызов как обычной функции, а имеется ввиду создание объекта типа A и вызов конструктора без параметров, то есть имя этого объекта, которое будет стоять между "A" и "()", это адрес/указаnель, который вернет new. Так вот каким образом этот адрес/указатель подставится между "A" и "()"?
 
Текущее время: 18:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru