Malloc

  • Автор темы Guest
  • Дата начала
G

Guest

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

lazybiz

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

Guest

#4
Поддерживаю моего предшественника, для меня это не составит труда:
(чистейший Си)
C++:
void main( void )
{
char *  buffer;
buffer = malloc( 16777216 );
printf( "Введите неограниченное кол-во текста (если будет мало добавьте ноль в конце числа в предыдущей строке):" );
gets( buffer );
...
}
Пожалуйста) Не за что:huh:
Но ведь тут объём памяти заранее ограничен..
Или я недопонимаю?
А можно сделать так чтобы было забронировано 8бит под символ и когда он заполнен ( равен не ноль ), то выделяется ещё один байт и т.д, пока пользователь не введёт символ перехода но новую строку?
но в любом случае - спасибо..
 

lazybiz

Well-known member
03.11.2010
1 339
0
#5
А можно сделать так чтобы было забронировано 8бит под символ и когда он заполнен...
По-битно вводить собираешься?

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

Вот и все.