|
184 / 24 / 4
Регистрация: 18.01.2011
Сообщений: 359
|
||||||
выделить новую память new так, чтобы адрес остался прежним19.06.2012, 12:01. Показов 1028. Ответов 10
Метки нет (Все метки)
Добрый день.Использую выделение динам. памяти таким образом:
Далее приходит момент, когда массив становится заполненным и нужно увеличить кол-во элементов. Тогда я делаю массив копий, переношу туда инфу, потом меняю указатели и присваиваю своему массиву новый адрес с большим кол-вом элементов. Все здорово. Массив увеличился, данные сохранились, но вот беда! адрес стал другим. Хотелось бы вот как-то чтоб еще и адрес не менялся если это возможно. P.S. Возможно мне предложат использовать vector - который исправит данную проблему, но я хотел бы узнать, возможно ли ее решить с помощью new? Спасибо.
0
|
||||||
| 19.06.2012, 12:01 | |
|
Ответы с готовыми решениями:
10
скорость интрента упала,а сигнал остался прежним
|
|
62 / 62 / 11
Регистрация: 16.10.2011
Сообщений: 200
|
|
| 19.06.2012, 12:07 | |
|
Нет не возможно. Пользователю не дана возможность управлять выделением памяти. А в чем вообще проблема у тебя? Остальные же как-то живут не решая такую задачу???
1
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 19.06.2012, 12:10 | ||||||
|
Андрей2011, Можно. Но вы уверены что стоит?
1
|
||||||
|
184 / 24 / 4
Регистрация: 18.01.2011
Сообщений: 359
|
|
| 19.06.2012, 12:16 [ТС] | |
|
эм. Дело вот в чем. У меня есть массив классов. в этих классах есть ссылки на др. классы.
и вот получается, что когда я меняю адрес у одних классов, то у других остаются ссылки на старую память. ((( Добавлено через 3 минуты т.е. чтоб наглядей. у меня есть класс "группы" и есть класс "точки" - подо все классы выделяю память динамически. Под группой есть список сылок на опред. точки. допустим я хочу увеличить массив точек. выделяю новую память перекидываю инфу о точках, и получается, что группы уже не видят моих точек. видят только их ЭХО, есть память старая была не почищена. Выходит что при выделении памяти на точки нужно еще и группы перепроводить!! Но это накладно по скорости и как-то не правильно по моему
0
|
|
|
62 / 62 / 11
Регистрация: 16.10.2011
Сообщений: 200
|
|
| 19.06.2012, 12:19 | |
|
Ты можешь хранить ссылки в классах на сами классы, а не на выделенную память. Можно хранить указатели не на саму выделенную память, а на именно указатель, который указывает на память. Тогда если в одном классе перевыделить память(поменяется адрес на который указывает указатель), то в остальных все будет Ок, так как они будут ссылаться на сам указатель, а не на старую память.
Добавлено через 1 минуту А можно увижеть задание?
1
|
|
|
184 / 24 / 4
Регистрация: 18.01.2011
Сообщений: 359
|
|||||||||||
| 19.06.2012, 12:24 [ТС] | |||||||||||
|
Хм. Ну может я не правильно что-то сделал. Это не задание а для души.
точки т.е. адреса их памяти. Если можно указывать сами точки...то подскажите как!! Буду благодарен крайне.
0
|
|||||||||||
|
62 / 62 / 11
Регистрация: 16.10.2011
Сообщений: 200
|
|
| 19.06.2012, 12:40 | |
|
Увидеть бы класс точки. Задача что-ли состоит в том чтобы сделать динамически расширяемый массив этих точек. Тогда по идее хватит вектора. Либо можно написать свой класс, который это будет осуществлять. Надо просто продумать идею. То что у вас, мне почему то напоминает решение на языке С, которое попытались подогнать под C++. Если надо, могу попзже кинуть пример, как организовать хранилище, но не сейчас... мне пора на экзамен >_>
1
|
|
|
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
|
||
| 19.06.2012, 12:48 | ||
|
ForEveR, а там разве есть увеличение размера?
2
|
||
|
184 / 24 / 4
Регистрация: 18.01.2011
Сообщений: 359
|
|
| 19.06.2012, 12:57 [ТС] | |
|
Уважаемый,darkknight2008, мне очень помог.
Успешно сдать(принять) экзамен!! )) ![]() Дело в том, что я действительно хранил адрес на память -> std::vector<TTo4ka*> MassivTo4Grup; а не саму ссылку. когда я поменял на -> std::vector<TTo4ka> MassivTo4Grup; то проблема исчезла!!! 2й метод боялся использовать т.к. думал что будут копироваться группы, увеличиваться объем памяти или еще что....но кажется все работает хорошо. Спасибо!!! Добавлено через 8 минут Рано радовался. Без * объект копируется(((
0
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 19.06.2012, 13:05 | |
|
grizlik78, Да, согласен. Не прав.
0
|
|
|
184 / 24 / 4
Регистрация: 18.01.2011
Сообщений: 359
|
||||||||||||||||
| 19.06.2012, 13:25 [ТС] | ||||||||||||||||
|
Уважаемые, помогите разобраться до конца!
В классе моем есть такая штука:
когда я заполнял массив групп таким образом:
Когда же поменял:
Т.е. хоть она и была создана динамически, но при данном копировании память выделилась новая и все работает хорошо. Наверно не оч понятно написал(( Вопрос в том, на сколько правильно так делать? Можно ли разрешать подобное копирование? В итоге получается что создается новый объект.(((
0
|
||||||||||||||||
| 19.06.2012, 13:25 | |
|
Помогаю со студенческими работами здесь
11
Объединить массивы так, чтобы результирующий массив C остался упорядоченным по возрастанию Объединить массивы так, чтобы результирующий массив C остался упорядоченным по возрастанию Обьединить два упорядоченных arraylist'a так, чтобы результирующий остался упорядоченным
Объединить массивы так, чтобы результирующий массив остался упорядоченным по убыванию Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|