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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
alexsanqp
2 / 2 / 0
Регистрация: 06.03.2013
Сообщений: 37
#1

Растолкуйте new с адресацией! - C++

30.01.2014, 16:30. Просмотров 921. Ответов 20
Метки нет (Все метки)

Я так понимаю что это для избегания повторного выделения памяти? но до конца так и не понял. Спасибо откликнувшимся.
Вот я экспериментировал:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
 
char buffer[500];
 
void main()
{
        int *a, *b, *c;
 
        a = new (buffer) int[120];
        b = new (buffer) int[200];
        с = new int[8];
 
    a[2] = 220;
    b[3] = 330;
    c[4] = 440;
 
    cout << a[2] << "   " << &a[2] << endl;
    cout << b[3] << "   " << &b[3] << endl;
        cout << c[4] << "   " << &c[4] << endl;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2014, 16:30
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Растолкуйте new с адресацией! (C++):

New с адресацией - C++
Объясните пожалуйста, почему массив buffer не инициализируется нигде, а память все равно выделяется. Т.е. какое-то значение buffer -у...

Растолкуйте код - C++
Помогите с кодом cout &lt;&lt; (i == 0 || j == 0 || i == N + 1 || j == M + 1 ? '#' : a) &lt;&lt; (j &lt;= M ? &quot;&quot; : &quot;\n&quot;); что делает cout &lt;&lt; ( ? : ); я...

Растолкуйте почему выводится единица - C++
Почему выводит 1?? #include int main(int argc, char** argv) { int x = 0; int y = 0; if (x++ &amp;&amp; y++) ...

растолкуйте про хэш плиз - C++
на картинке реализация поиска в &quot;hash_map&quot; от Страуструпа. И все бы хорошо если бы не один момент. b и v это векторы. И доступ по индексу...

Case в switch и вообще растолкуйте за код - C++
Объясните пожалуйста что имеет в виду Стаус 1)case'(':case')': 2) curr_tok=Token_Value(ch) это приведение к Token_Value? 3)чем по...

Растолкуйте строчку из вики о фабричном методе - C++
Слово &quot;специфицировались&quot; никак понять не могу. Также, не могу понять как это так, чтоб на создаваемые классом объекты влияли...

20
ValeryS
Модератор
7022 / 5360 / 531
Регистрация: 14.02.2011
Сообщений: 18,086
30.01.2014, 22:03 #16
Цитата Сообщение от alexsanqp Посмотреть сообщение
a = new (buffer) int[120];
а мне одно интересно кто то этим в жизни пользуется?
напоминает анекдот
" В глухую сибирскую деревню прислали умную японскую машину для пилки дров
Мужики засунули в машину тоненький прутик
"Вжик" сказала машина и перепилила прутик
"У бля" сказали мужики и засунули в машину бревно
"Вжик вжик" сказала машина и перепилила бревно
"Уу бля" сказали мужики и засунули в машину стальную проволочку
"Вжжик вжжжик вжжжик" сказала машина и перепилила проволочку
"Уууу блляяя" сказали мужики и засунули в машину большую рельсу
"Вжжжжик вжжжжж" сказала машина и сломалась
"А! бля" сказали мужики и пошли пилить дрова"
0
alsav22
5437 / 4832 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.01.2014, 22:49 #17
Цитата Сообщение от ValeryS Посмотреть сообщение
а мне одно интересно кто то этим в жизни пользуется?
Что есть в литературе.
0
Миниатюры
Растолкуйте new с адресацией!   Растолкуйте new с адресацией!   Растолкуйте new с адресацией!  

Kuzia domovenok
2130 / 1959 / 197
Регистрация: 25.03.2012
Сообщений: 6,836
Записей в блоге: 1
30.01.2014, 23:09 #18
ValeryS, таки пользуются. Речь же о плейсмент new?

Простой пример. У класса widget нет конструктора по-умолчанию. Только с параметром.
Создать динамический массив объектов класса widget, запросив в консоли количество объектов и параметр каждого.
0
ValeryS
Модератор
7022 / 5360 / 531
Регистрация: 14.02.2011
Сообщений: 18,086
30.01.2014, 23:20 #19
alsav22,
третья вкладка убедила
а первые две чисто теория
Kuzia domovenok,
тоже убедил
самкогдато пользовался но за ненадобностью забыл
По мне это костыли
0
alsav22
5437 / 4832 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
31.01.2014, 02:27 #20
Цитата Сообщение от ValeryS Посмотреть сообщение
третья вкладка убедила
Это не для убеждения, для информации (пишут, когда такое применяется, или может быть применено).

Добавлено через 2 часа 32 минуты
Кстати, на третьем скрине ошибка в коде есть.
C++
1
2
for (int i  = 0; i < 10; ++i)
        new(bestPieces[i]) EquipmentPiece(идентификационный номер);
Нужно или так:
C++
1
2
for (int i  = 0; i < 10; ++i)
        new(&bestPieces[i]) EquipmentPiece(идентификационный номер);
Или так:
C++
1
2
for (int i  = 0; i < 10; ++i)
        new(bestPieces + i) EquipmentPiece(идентификационный номер);
0
Кудаив
331 / 408 / 24
Регистрация: 27.05.2012
Сообщений: 1,168
Завершенные тесты: 2
31.01.2014, 09:29 #21
Цитата Сообщение от Vourhey Посмотреть сообщение
сдвигать указатель на невыделенную область памяти и осуществлять там операции. Если ты считаешь, что это правильно, то проблемы у автора в коде нет вообще и сдвигать ничего не нужно.
буффер размеров 500 интов - ах нет же чаров! mea culpa - проглядел
0
31.01.2014, 09:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.01.2014, 09:29
Привет! Вот еще темы с ответами:

Что такое Хэш таблица с открытой адресацией - C++
Здраствуйте у меня такой вопрос то такое Хэш таблица с открытой адресацией хеш функция что должно храниться в структуре как осуществляется...

Удаление узла бинарного дерева, проблема с функциями, адресацией - C++
код: #include &lt;cstdlib&gt; #include &lt;iostream&gt; typedef struct tree{ // обьявляем тип char data; //дата изьятия в формате xx.xx.xxxx ...

На Дваче анон поднял хитрый пример на тему ++i, растолкуйте мне, гики, а то я так ничего и не понял - C++
Цитирую...

Проблема с адресацией - Assembler
Точнее сказать проблема с моей головой, которая что-то не понимает..Мне нужно вывести надпись в установленном месте в функции, аргументом...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru