Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- char *getline()
- {
- char c; // заводится переменная для хранения в ней введенного символа
- char *str = new char[1]; // выделяется память на динамический массив длиной в 1 элемент
- size_t size = 1; // размер массива str
- for (int i = 0; std::cin >> c && c != '\n'; ++i) { // до тех пор пока не будет введен символ перевода строки
- str[i] = c; //заносим введенный символ в последний элемент массива
- char* tmp = new char[1+ size]; //выделяем память на массив длиной масиива length(str) + 1 элемент
- for (int j = 0; j < size; ++j) { //копируем значения str в tmp
- tmp[j] = str[j];
- }
- delete[]str; //удаляем данные по адресу str
- str = tmp; //перенаправляем указатель str на область памяти, где записаны старые значения + 1 свободный элемент
- size++; //увеличиваем размер элементов массива на 1
- tmp = 0; //обнуляем указатель tmp
- }
- return str;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement