Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
1 / 1 / 2
Регистрация: 07.10.2013
Сообщений: 170
1

Переменные в статической и динамической памяти!

03.02.2014, 17:09. Показов 1520. Ответов 7
Метки нет (Все метки)

Народ, подскажите как этот рисунок перевести в программу! тоесть как с помощью программы разместить таким образом переменные в памяти
Переменные в статической и динамической памяти!
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.02.2014, 17:09
Ответы с готовыми решениями:

Переменные в динамической памяти!
подскажите как реализовать такое задание: Разместите в динамической памяти две переменные типа...

ООП. Переменные-члены в динамической памяти.
Решил я массив в классе динамически создавать и наткнулся на пробелы в знаниях. После безуспешного...

Проблема с взаимодействием динамической и статической памяти - обращение к статической переменной
Здравствуйте! Помогите решить проблему! Задача такая: написать сортировку бинарным деревом, так...

Алгоритм выделение динамической памяти под переменные различного типа
послезавтра экзамен, но я не могу найти в интернете ответы на эти вопросы: если знаете где...

7
101 / 102 / 31
Регистрация: 15.01.2014
Сообщений: 283
03.02.2014, 17:25 2
yurets17, а прокомментировать можете? Что за структуры такие, что значат стрелки? что значат просто черточки
0
1 / 1 / 2
Регистрация: 07.10.2013
Сообщений: 170
03.02.2014, 17:30  [ТС] 3
В статической памяти обьявлены 2 переменные! стрелочки и черточки это типа указатели! а в динамической памяти, я так думаю, что это массивы

Добавлено через 1 минуту
вот что-то подобное, но это скорее всего неправильно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void f25(){
    int *p1;
    char  *p2;
    string *p3;
    p1 = new int[3];
    p2 = new char;
    p3 = new string[2];
    *p1 = 78;
    *++p1 = *p2;
    *p2 = 'д';
    *p3 = "Зима";
    cout<<*--p1<<"  "<<*p1<<"  "<<*p2<<"  "<<*p3;
    *p3++;p3 = NULL; cout<<"  "<<p3;
}
0
319 / 225 / 73
Регистрация: 22.11.2013
Сообщений: 856
Записей в блоге: 1
03.02.2014, 18:17 4
C++
1
2
 int *p1;
    p1 = new int[3];
-это, если не заблуждаюсь размещение на кучи (динамическая память)
*p1 = 78; - это присвоение первому элемента массива p1[0]=78.
Вот это оригинально
C++
1
2
 char  *p2;
    p2 = new char;
это должно быть полный аналог char p2;но размещенный (на куче) в динамической памяти и следовательно обращаться придется p2[0]. Зачем
А вот здесь не понял
*++p1 = *p2;//присвоить значение первому элементу p1 взятый из памяти указателя p2 и сместить указатель p1 на один элемент. При этом p2 в этот момент еще не определен, плюс типы не одинаковы. размер p2 меньше p1. т.е. в любом случае эта строчка прочтет мусор...
Одним словом и задание не особо понял, а от кода
0
1 / 1 / 2
Регистрация: 07.10.2013
Сообщений: 170
03.02.2014, 18:23  [ТС] 5
я же написал, что код скорее всего неправильный! а как по другому объяснить задание я не знаю
0
319 / 225 / 73
Регистрация: 22.11.2013
Сообщений: 856
Записей в блоге: 1
03.02.2014, 18:30 6
Цитата Сообщение от yurets17 Посмотреть сообщение
я же написал, что код скорее всего неправильный! а как по другому объяснить задание я не знаю
Так вы словами объясните что куда разместить, например так
выделить память в стеке (статическая память) для переменной и присвоить ей значение, далее выделить память на кучи (динамическая память) для массива или переменных и проделать с ними следующие операции....

Добавлено через 56 секунд
А то схему мы не поняли.... Да идею кода понять сложно
0
1 / 1 / 2
Регистрация: 07.10.2013
Сообщений: 170
03.02.2014, 18:45  [ТС] 7
Извините, если что не так! я описал задание так как я его понимаю(хотя не исключено что я сам понимаю его неправильно).

Выделить в стеке память под две переменные(переменные не инициализировать, в них мусор), далее в кучи выделить память под два массива(один из трех элементов, а один из двух). Потом сделать указатель от первой переменной в стеке на нулевой элемент массива(в котором находится значение 78) из трех элементов. Далее со 2 элемента данного массива сделать указатель на какую-то область памяти в в кучи, в которой хранится символ "д". Далее с третьего элемента данного массива сделать указатель на другой массив из 2 элементов. Также от второй переменной в стеке сделать указатель на нулевой элемент второго массива, где находится строка символов "Зима", а в первый элемент данного массива инициализирован как NULL.
0
319 / 225 / 73
Регистрация: 22.11.2013
Сообщений: 856
Записей в блоге: 1
03.02.2014, 19:08 8
Задание уточните, либо я его не понимаю, либо оно тупиковое:
вот это не понял:
Цитата Сообщение от yurets17 Посмотреть сообщение
потом сделать указатель от первой переменной в стеке на нулевой элемент массива
результат каков должен быть? переменная в стеке получит значения первого элемента массива? тогда так:
C++
1
2
3
4
int c;
int *p1=new int[3];
*p1=78;
c=*p1; //либо c=p1[0]
А это как?
Цитата Сообщение от yurets17 Посмотреть сообщение
Далее со 2 элемента данного массива сделать указатель на какую-то область памяти в в кучи, в которой хранится символ "д"
символ занимает один байт а элемент массива int под x86 занимает 4 байта, он и будет читать 4 байта (в 3х последних из которых мусор)....
Цитата Сообщение от yurets17 Посмотреть сообщение
где находится строка
строка - это сама по себе массив, его надо в стеке разместить или как ?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.02.2014, 19:08

Какие переменные типа CARS можно использовать для выделения динамической памяти?
Всем привет! Помогите плиз ответить на вопросы!( Вижу, что тут обсуждают в основном программы, но...

Как сделать MFC статической, а не динамической?
это всё тоже из серии &quot;Не работает exe файл на других компах&quot; я предлагаю засунуть в эту тему все...

CPT: Настройка статической и динамической маршрутизации
Здравствуйте, первый раз пишу на форум вообще. Мне нужна ваша помощь в настройке статической и...

Заполнение динамической матрицы(дв. массива) аналогично статической
Т.е. простой двумерный массив можно заполнить так: { {0, 0, 0, 0, 0}, {0, 1, 3, 1, 0}, {0, 3,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru