Malloc

Тема в разделе "C/C++/C#", создана пользователем -, 8 мар 2011.

  1. Гость

    Не могли бы вы написать программку, которая принимает от пользователя неограниченное кол-во текста с исполользованием malloc ( ну или calloc ). Не могу разобраться..
    (чистый Си)
     
  2. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Конечно могли бы!
     
  3. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Поддерживаю моего предшественника, для меня это не составит труда:
    (чистейший Си)
    Код (C++):
    void main( void )
    {
    char *  buffer;
    buffer = malloc( 16777216 );
    printf( "Введите неограниченное кол-во текста (если будет мало добавьте ноль в конце числа в предыдущей строке):" );
    gets( buffer );
    ...
    }
    Пожалуйста) Не за что:huh:
     
  4. Гость

    Но ведь тут объём памяти заранее ограничен..
    Или я недопонимаю?
    А можно сделать так чтобы было забронировано 8бит под символ и когда он заполнен ( равен не ноль ), то выделяется ещё один байт и т.д, пока пользователь не введёт символ перехода но новую строку?
    но в любом случае - спасибо..
     
  5. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    По-битно вводить собираешься?

    * Выделяешь память... скажем для 64 символов (malloc\\calloc).
    * Посимвольно заполняешь этот массив (fgetc) вводя с клавиатуры до тех пор, пока не встретишь символ '\n'.
    * Если количество введенных символов начало превышать 64 - увеличиваешь массив еще на 64 (realloc).

    Вот и все.
     
  6. Гость

    разобрался, спасибо!
     
Загрузка...
Похожие Темы - Malloc
  1. zeleboba
    Ответов:
    1
    Просмотров:
    914

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