![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Chuck |
|
|||
![]() Сушня ![]() ![]() Профиль Группа: Эксперт Сообщений: 442 Регистрация: 12.12.2003 Где: Узбекистан, Ташке нт Репутация: нет Всего: 9 |
Господа!
Прошу разъяснить мне, как это сделать, сабж! Поясню, что я хочу! Есть структура
Т.е. изначально задано 100 элементов структуры. Как эту сотню расширить до 1000, 10000? Знаю, что копать нужно в сторону realloc, но что то не получается у меня. Код компилируется, но не выполняется. Это сообщение отредактировал(а) Chuck - 20.1.2006, 15:11 |
|||
|
||||
Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
Использовать std::vector и еже с ними.
realloc - это си, а не с++. -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
ну а если всеже решил использовать свой метод, то тогда надо
делать так
Добавлено @ 15:52 ну а так Mayk дело говорит, зачем усложнять себе жизнь всякими маллокаи реаллоками и тп лабудой Добавлено @ 15:55 ну и не забывай в конце делать free Это сообщение отредактировал(а) chaos - 20.1.2006, 15:53 |
|||
|
||||
azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Полностью согласен...Нет смысла в realloc..но если уж хочется так то лучше уж new, delete...твой realloc все равно тоже самое делает (сперва удаляет потом заново создает).. Это сообщение отредактировал(а) azesmcar - 20.1.2006, 17:03 |
||||
|
|||||
blackofe |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 29.11.2005 Репутация: 4 Всего: 4 |
Chuck
все предыдущие ораторы дело говорят. твоя главная ошибка в том, что ты пытаешься реаллокировать память, которую ты не аллокировал (пардон мой френч): The realloc function changes the size of an allocated memory block. другими словами, realloc можно использовать для реаллокации памяти, предварительно аллокированной с помощью malloc, calloc, т.е. выделенной в куче. своим же объявлением массива ты говоришь компилятору, чтобы он озаботился размещением его в стеке - скажем так, это есть са-авсем другое место ![]() ну и, если уж мы имеем в руках с++, да еще с stl, то грех этим не воспользоваться. |
|||
|
||||
Chuck |
|
|||
![]() Сушня ![]() ![]() Профиль Группа: Эксперт Сообщений: 442 Регистрация: 12.12.2003 Где: Узбекистан, Ташке нт Репутация: нет Всего: 9 |
Спасибо, на самом деле я просто запутался, но знал, что нужно выделять malloc-ом, просто из-за многочисленных ошибок, я упустил это!
Вот пример с изменением размера вектора
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |