Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2015, 18:25   #1
Bor0902
 
Регистрация: 04.06.2015
Сообщений: 7
По умолчанию Динамическая память в СИ

Нужно написать программу, которая будет выводить гласные буквы (концом последовательности будет пробел). Программа есть, все работает, но есть такое условие, что количество символов заранее не определено, поэтому нельзя сразу использовать malloc, нужно выделить память и потом, если что, ее подбавлять. Как это сделать?
Код:
#include <stdio.h>
#include <malloc.h>
#include <string.h>
int main(void)
{
	int n, i;
	char *TEXT;
	
	TEXT = (char *)malloc(100 * sizeof(char));
	
	for (i = 0; i < strlen(TEXT); i++)
	{
		TEXT[i] = getchar();
		if (TEXT[i] == 'e'  || TEXT[i] == 'u' || TEXT[i] == 'i' || TEXT[i] == 'o' || TEXT[i] == 'a')
		{
			printf("%c", TEXT[i]);
		}
		if (TEXT[i] == ' ')
		{
			break;
		}
	}
	
	free (TEXT);
	return 0;
}
Bor0902 вне форума Ответить с цитированием
Старый 13.06.2015, 18:40   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Во-первых, malloc только выделяет память, но не производит её инициализацию, так что strlen вернёт непонятно что.
Во-вторых, примерно:
Код:
//...
int size = 100, i = 0;
TEXT = (char *) malloc(size * sizeof(char));
while (1) {
    if (i == size) {
        size *= 2;
        TEXT = (char *) realloc(TEXT, size * sizeof(char));
    }
    //...
    ++i;
}
//...
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 13.06.2015, 18:57   #3
Bor0902
 
Регистрация: 04.06.2015
Сообщений: 7
По умолчанию

Спасибо!!!
Bor0902 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическая память dykee Помощь студентам 2 27.02.2014 01:52
Динамическая память Ledom Общие вопросы C/C++ 9 26.11.2010 00:07
Динамическая память zhenya.ya Помощь студентам 1 22.09.2010 08:43
динамическая память aka_faith Общие вопросы C/C++ 47 12.06.2009 12:35
Динамическая память. Пaвeл Помощь студентам 16 31.05.2009 21:16