• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Malloc()

  • Автор темы warmonger
  • Дата начала
Статус
Закрыто для дальнейших ответов.
W

warmonger

очень прошу помоч(никак немогу понять..):
вообщем я не знаю, сколько пользыватель введет символом, поетому нужно динамически выделить память...
но как??)
 
W

warmonger

ну вот пример:
Код:
char *st,*f, c;
st=malloc(10*sizeof(char));
f=st;
while((c=getchar())!='\n')
*f++=c;
*f='\0';

как зделать, что бы походу программы число 10 убольшивалось, если пользыватель введ больше символов?
 
G

grigsoft

Код:
char *st,*f, c;
st=malloc(10*sizeof(char));
f=st;
int nCurSize= 10;
int nLoaded = 0;
while((c=getchar())!='\n')
{
nLoaded++;
if (nLoaded>=nCurSize)  
{
nCurSize += 20;
char* pNew = malloc(nCurSize*sizeof(char));
memcpy(pNew, st, (nLoaded-1)*sizeof(char));
free(st);
st = pNew;
f = st + nLoaded-1;
}
*f++=c;
}
*f='\0';
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!