Форум программистов, компьютерный форум CyberForum.ru

Не выполняется realloc - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
yoloyol
0 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 15
03.06.2012, 13:35     Не выполняется realloc #1
Вообщем, не могу понять в чем ошибка, malloc() работает, а realloc() выдает ошибки. Имеется собственный тип item (структура, в которой два поля, типа char и int), вот тот самый realloc():
C++
1
2
3
4
5
...
   cout<<"перед realloc"<<endl;
   vector=(item *) realloc(vector, size*sizeof(item)); 
   cout<<"realloc выполнен"<<endl;
...
*первое сообщение выводится, а то, что после realloc'а - нет.

vector - указатель типа item
size - кол-во элементов, для которых требуется место

P.S. IDE - code::blocks
OC Linux (Ubuntu)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2012, 13:35     Не выполняется realloc
Посмотрите здесь:

C++ realloc
C++ Код не выполняется в одном месте, но выполняется в другом
аналог realloc() в С++ C++
C++ realloc
ошибка realloc C++ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2012, 16:08     Не выполняется realloc
Еще ссылки по теме:

realloc C++
C++ Функция realloc
Malloc realloc и C++ C++

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

Или воспользуйтесь поиском по форуму:
yoloyol
0 / 0 / 0
Регистрация: 17.05.2012
Сообщений: 15
03.06.2012, 16:08  [ТС]     Не выполняется realloc #21
Цитата Сообщение от Toshkarik Посмотреть сообщение
Вывод консоли
size_malloc= 80
индексирование выполнено
dataList.head= 0
***переход***
переход в else
перед realloc
vector= 0x8764e0
size_realloc= 240
size= 30
realloc выполнен
индексирование выполнено
перераспределение выполнено
***переход***
vector[dataList.curr].element= 1
***переход***
переход в else
перед realloc
vector= 0x8764e0
size_realloc= 720
size= 90
realloc выполнен
индексирование выполнено
перераспределение выполнено
***переход***
vector[dataList.curr].element= 2
***переход***
переход в else
перед realloc
vector= 0x8764e0
size_realloc= 2160
size= 270
realloc выполнен
индексирование выполнено
перераспределение выполнено
***переход***
vector[dataList.curr].element= 3
***переход***
переход в else
перед realloc
vector= 0x8764e0
size_realloc= 6480
size= 810
realloc выполнен
индексирование выполнено
перераспределение выполнено
***переход***
vector[dataList.curr].element= 3
***переход***
переход в else
перед realloc
vector= 0x876d60
size_realloc= 19440
size= 2430
realloc выполнен
индексирование выполнено
перераспределение выполнено
***переход***
vector[dataList.curr].element= 2
***переход***
переход в else
перед realloc
vector= 0x8786c0
size_realloc= 58320
size= 7290
realloc выполнен
индексирование выполнено
перераспределение выполнено
***переход***
vector[dataList.curr].element= 1
***переход***
переход в else
перед realloc
vector= 0x2f7fd0
size_realloc= 174960
size= 21870
realloc выполнен
индексирование выполнено
перераспределение выполнено
***переход***
vector[dataList.curr].element= 1
***переход***
переход в else
перед realloc
vector= 0x3063b0
size_realloc= 524880
size= 65610
realloc выполнен
индексирование выполнено
перераспределение выполнено
***переход***
vector[dataList.curr].element= 2
***переход***
переход в else
перед realloc
vector= 0x330f30
size_realloc= 1574640
size= 196830
realloc выполнен
индексирование выполнено
перераспределение выполнено
***переход***
vector[dataList.curr].element= 3
***переход***
переход в else
перед realloc
vector= 0x6e0040
size_realloc= 4723920
size= 590490
realloc выполнен
индексирование выполнено
перераспределение выполнено
***переход***
vector[dataList.curr].element= 3
***переход***
переход в else
перед realloc
vector= 0x880040
size_realloc= 14171760
size= 1771470
realloc выполнен
индексирование выполнено
перераспределение выполнено
***переход***
vector[dataList.curr].element= 1
***переход***
переход в else
перед realloc
vector= 0xd10040
size_realloc= 42515280
size= 5314410
realloc выполнен
индексирование выполнено
перераспределение выполнено
***переход***
vector[dataList.curr].element= 2

Просто перед return 0; в main вставьте какую нибудь функцию для паузы программы. И после того как данные считаются, посмотрите сколько она занимает памяти в диспетчере задач.
ахах)) на самом деле всё в порядке, тот код который я выложил, я его уже модифицировал и такого, теперь нет))
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Yandex
Объявления
03.06.2012, 16:08     Не выполняется realloc
Ответ Создать тему
Опции темы

Текущее время: 12:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru