Malloc()

Тема в разделе "Общие вопросы по С и С++", создана пользователем warmonger, 26 фев 2007.

Статус темы:
Закрыта.
  1. warmonger

    warmonger Гость

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

    warmonger Гость

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

    grigsoft Well-Known Member

    Регистрация:
    15 ноя 2005
    Сообщения:
    735
    Симпатии:
    0
    Код (Text):
    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';
     
  4. warmonger

    warmonger Гость

    спасибо большое :ph34r:
     
Статус темы:
Закрыта.

Поделиться этой страницей