Форум программистов, компьютерный форум 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; подробнее

Показать сообщение отдельно
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,050
16.01.2014, 20:11     Как происходит процесс выделения памяти в стеке и куче
Цитата Сообщение от Lers Посмотреть сообщение
Преподы издеваются, говорят если знаешь эти извращение, то имеешь понятие о выделение памяти в стеке, куче и т.п..
спроси у них
в таком коде
C++
1
2
3
void fnc(int a)
{
 int b
где разместятся a и b для процессоров( микроконтроллеров)
таких как Intel 8051 или Atmega8535
если ответят в стеке то можешь смело их посылать....... учится
нет там таких размеров стеков, в регистрах будут размешатся
и даже всеми любимяй 80х86 может спокойно расположить локальную переменную не в стеке а в регистрах
так что эти извраты не приведут тебя к пониманию

Добавлено через 7 минут
Цитата Сообщение от Lers Посмотреть сообщение
Мм забыл про выравнивание....
зависит от процессора и от настроек компилятора
выравнивание удобно процессору чтобы быстрее иметь доступ
так
8 битные процессоры будут выравнивать на на границу байта( отсутствует выравнивание)
16 битные на границу двух байтов
32 битные на границу четырех байтов
64 битные на границу 8 байтов
так адреса в структуре
C++
1
2
3
4
5
struct aa
{
char c;
int i;
}
могут быть
для 8 битного
c 0х00;
i 0х01;
для 16 битного
c 0х00;
i 0х02;
для 32 битного
c 0х00;
i 0х04;
для 64 битного
c 0х00;
i 0х08;

не знаю понятно ли объяснил?

Добавлено через 6 минут
Цитата Сообщение от Lers Посмотреть сообщение
при int выделяется 2 байта на вырав.
размер int 4 байта для 32 разрядных и 2 байта у 16 битных
размер int чаще всего привязан к разрядности процессора
Цитата Сообщение от Lers Посмотреть сообщение
при double 6 байт
размер double 8 байт
Цитата Сообщение от Lers Посмотреть сообщение
при long double 12 байтов
размер long double 10 байт ( правда микрософт на это плюет и размер long double у него тоже 8 байт)
для проверки размера существует sizeof возвращает размер в байтах
но никакого отношения размер переменных к выравниванию не имеет
 
Текущее время: 20:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru