0 / 0 / 0
Регистрация: 05.10.2014
Сообщений: 31
|
||||||
1 | ||||||
Выделение памяти с помощью функции realloc04.12.2014, 16:10. Показов 1675. Ответов 7
Метки нет Все метки)
(
в общем задачка по сути своей вроде бы легкая, должна укладываться в 60 строчек, но что-то допереть не могу. Суть задания в том, что в у нас есть строка вида AB5CDE10. При выводе нам должно выйти ABBBBBCDEEEEEEEEEE, то есть если после чтения знака не следует десятичное число, знак копируем 1 раз до выходного ряда,
если после чтение знака следует десятичное число, прочитаем это число N раз и до выхода скопируем этот самый знак N раз. Причем тут используется чтение кодов ASCII. Вот что до меня пока нашло, как это изобразить:
0
|
|
04.12.2014, 16:10 | |
Ответы с готовыми решениями:
7
Динамическое выделение для массива структур. Программа вылетает без ошибок на использовании функции realloc
Выделение памяти в отдельной функции Выделение памяти в отдельной функции |
11 / 11 / 9
Регистрация: 24.10.2013
Сообщений: 48
|
||||||||||||||||
05.12.2014, 02:11 | 2 | |||||||||||||||
Я это сделал примерно так:
Ну и в конечном итоге мы возвращаем из функции не 0, а
0
|
Диссидент
![]() 27329 / 17050 / 3767
Регистрация: 24.12.2010
Сообщений: 38,404
|
|||||||||||||||||||||
05.12.2014, 10:48 | 3 | ||||||||||||||||||||
Tatatatitata, вместо этого
1
|
0 / 0 / 0
Регистрация: 05.10.2014
Сообщений: 31
|
|
05.12.2014, 15:16 [ТС] | 4 |
спасибо большое, но я не совсем поняла роль k и почему оно у вас перед if сначала выполняет k++?
0
|
11 / 11 / 9
Регистрация: 24.10.2013
Сообщений: 48
|
|
05.12.2014, 18:24 | 5 |
С помощью k мы записываем результат в массив res1.
Для первой буквы мы увеличиваем к на 1 и записываем эту букву в res1[0], для каждых последующих букв мы проверяем если res1[k] не будет выходить за пределы массива, если выходит, то добавляем память с помощь функции реалок. Наверное это можно записать немного красивее, но это первое что пришло мне в голову.
0
|
0 / 0 / 0
Регистрация: 05.10.2014
Сообщений: 31
|
||||||
06.12.2014, 16:36 [ТС] | 6 | |||||
Tatatatitata, получается применимо к моей программе это дело все будет выглядеть так, да?
0
|
11 / 11 / 9
Регистрация: 24.10.2013
Сообщений: 48
|
||||||
06.12.2014, 16:53 | 7 | |||||
![]() Решение
Ну почти, во первых в строчке 23 вы забыли заменить принтф, во вторых вы смешали то что изначально написал и то что мне посоветовали и в итоге получилось так, что у вас программа по любому закончится на реалоке, ну и в третьих нужно перед тем как вернуть строку, добавить "\0". Вот в общем готовый вариант:
1
|
0 / 0 / 0
Регистрация: 05.10.2014
Сообщений: 31
|
|||||||||||
06.12.2014, 19:09 [ТС] | 8 | ||||||||||
немного исправила, но почему о он не правильно 3 пример выводит, хотя когда пишу printf, то вывод правильный. Добавлено через 2 часа 12 минут Tatatatitata, Спасибо вам огромное!!!!!! Работает!! правда с есть один пример который данная программа не выводит
0
|
06.12.2014, 19:09 | |
Помогаю со студенческими работами здесь
8
Выделение памяти массиву структур в функции Выделение памяти под массив в отдельной функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |