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

Как происходит процесс выделения памяти в стеке и куче - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Интерационные циклы (найти ошибку) http://www.cyberforum.ru/cpp-beginners/thread1073045.html
Скажите, пожалуйста, где я допустила ошибку? #include "stdafx.h" #include <stdio.h> #include <conio.h> #include <cmath> using namespace std;
C++ Деструктор абстрактного класса Почему деструктор абстрактного класса нужно делать виртуальным? http://www.cyberforum.ru/cpp-beginners/thread1073037.html
Матрица. Все элементы последней строки уменьшить на соответствующие элементы третьего столбца C++
В первом модуле определена квадратная матрица 4-ого порядка. Выводится из изменная матрица построчно. Во втором модуле все элементы последней строки уменьшаются на соответствующие элементы третьего столбца.
Изменить программу C++
сабж для приаттаченной задачи по аналогии с кодом ниже, вроде просто, но не получается, прошу помощи :) #include "stdafx.h" #include <Iostream> #include <math.h> using namespace std; int main() { setlocale(LC_ALL, "Russian"); float x, a, b;
C++ C++ упорядочены ли числа последовательности по убыванию http://www.cyberforum.ru/cpp-beginners/thread1073011.html
вот сама задача: Даны натуральные числа A1, A2, ... . Признак конца последовательности 0. Определить упорядочены ли числа последовательности по убыванию и вот,как я её решил,но думаю,что не правильно - пожалуйста,проверьте: #include <stdio.h> #include <math.h> main() { int n; /* количество чисел */
C++ Не работает проверка и сдвиг строки матрицы помогите разобраться. не работает проверка и сдвиг строки. не могу найти ошибку. #include<iostream> #include<iomanip> using namespace std; подробнее

Показать сообщение отдельно
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.01.2014, 18:54     Как происходит процесс выделения памяти в стеке и куче
Цитата Сообщение от Lers Посмотреть сообщение
Где хранятся адреса объектов d1,d2? Тоже в стеке?
Нигде. При определении переменной под неё выделяется память, адрес которой связан с именем данной переменной (именованная область памяти). Для локальных переменных d1, d2, d3(указатель), d4(указатель) память выделяется на стеке, на этапе компиляции, и адреса этой памяти связаны с именами этих переменных. Чтобы получиь эти адреса, нужно применить к именам переменных операцию взятия адреса: &. В динамческой памяти, память под переменные выделяется неименованная (выделяется в процессе работы программы). Поэтому доступ к таким переменным возможен только через адреса (указатели).
Цитата Сообщение от Lers Посмотреть сообщение
т.е. когда вот такая запись gets((&d1)->namedisc); то я обращаюсь в стек за адресом объекта
Обращаетесь к полю объекта, через его адрес на стеке.
Цитата Сообщение от Lers Посмотреть сообщение
а когда такая (*d3).namedisc; то я обращаюсь в кучу за объектом?
Обращаетесь к полю объекта, через объект, получаемый разыменованием указателя на объект.
 
Текущее время: 01:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru