Malloc()

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

warmonger

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

warmonger

Гость
#2
ну вот пример:
Код:
char *st,*f, c;
st=malloc(10*sizeof(char));
f=st;
while((c=getchar())!='\n')
*f++=c;
*f='\0';
как зделать, что бы походу программы число 10 убольшивалось, если пользыватель введ больше символов?
 

grigsoft

Well-Known Member
15.11.2005
735
0
#3
Код:
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';
 
Статус
Закрыто для дальнейших ответов.