13 / 13 / 11
Регистрация: 03.09.2011
Сообщений: 1,026
|
||||||
1 | ||||||
Realloc внутри функции22.03.2015, 22:13. Показов 2134. Ответов 2
Метки нет Все метки)
(
Проблема заключается в следующем:
Когда я первый раз попадаю в функцию addItem и делаю в ней realloc указателя на структуру, а потом еще присваиваю значения, то после выхода из функции я вижу эти значения. Когда я второй раз попадаю в функцию, проделываю эти же действия, то после этого у меня отображаются значения после первого раза, а от второго раза остаются только 0. По задумке, после каждой итерации у меня должен пополняться элементами массив за счет realloс, но почему-то не работает. realloc происходит в методе EnterData. Если кто-нибудь захочет скомпилировать программу и посмотреть на результаты, то нужно вбить 0, а потом какие-то данные.
0
|
|
22.03.2015, 22:13 | |
Ответы с готовыми решениями:
2
Почему так себя ведёт программа? Функции: malloc(), realloc(), free() Динамическое выделение для массива структур. Программа вылетает без ошибок на использовании функции realloc |
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
|
|
23.03.2015, 00:28 | 2 |
Ваше желание описать проблему конечно хорошее, но из того что Вы описали не понятно вообще ничего. Т.е. не понятно в чем заключается Ваша прблема. Постарайтесь еще раз описать проблему понятно и доступно.
Не по теме: Говнокод конечно ужасный, но ничего., все через это проходили. массив из 4 (магическое число!) элементов инициализируется тремя. void (*P[4])(struct Item *,int*)={addItem,deleteItem,searchItem};
0
|
13 / 13 / 11
Регистрация: 03.09.2011
Сообщений: 1,026
|
|
23.03.2015, 23:44 [ТС] | 3 |
castorsky, Проблема была в том, что если внутри функции происходит realloc, то он не затрагивает указатель в main.
Немного погуглив, я понял, что при перераспределении памяти указатель указывает на другую область памяти и как следствие не возвращается в main. Я решил эту проблему сделав возвращаемый тип не void, а указатель на структуру, с последующим присваиванием. Приведи пример убогости в моем коде, я попробую поправить.
0
|
23.03.2015, 23:44 | |
Помогаю со студенческими работами здесь
3
функции на основе realloc, malloc
Вызов функции внутри другой функции с передачей локальной переменной по ссылке Динамическое выделение памяти внутри функции (что вернуть из функции, если не удалось выделить память?) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |