• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Malloc

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

Guest

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

lazybiz

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

Guest

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

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

lazybiz

А можно сделать так чтобы было забронировано 8бит под символ и когда он заполнен...
По-битно вводить собираешься?

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

Вот и все.
 
Мы в соцсетях:

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