Advertisement
AZJIO

malloc

Mar 17th, 2013
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.99 KB | None | 0 0
  1. //пример использования функции malloc
  2. #include <iostream>
  3. #include <stdio.h>
  4. #include <windows.h>
  5. #include <cstdlib>
  6.  
  7. class Rus {
  8. public:
  9.     Rus(const char* msg): data(new char [lstrlen(msg)+1]) {CharToOemA(msg, data);}
  10.     ~Rus() {delete [] data;};
  11.     operator const char* () const {return data;}
  12. private:
  13.     char* data;
  14. };
  15.  
  16. int main()
  17. {
  18.   int len;
  19.  
  20.   std::cout << Rus("Укажите длину строки в символах: "); // Появляется диалог ввода числа
  21.   std::cin >> len; // Когда ввели число и нажали Enter, то в переменную len будет вставлено число
  22.  
  23. // выделяем указанное количество байт типа char и получаем указатель на эту область в переменную buffer
  24.   char * buffer = (char*) malloc(len + 1);          // динамическое выделение памяти под символьную строку
  25.   // если указатель содержит NULL (пусто), тогда выход
  26.   if (buffer==NULL) exit (1);                       // если выделение памяти не выполнилось, завершить программу
  27.  
  28. // запуск цикла от 0 до числа меньше чем число в переменной len, шаг цикла +1
  29.   for (int i = 0; i < len; i++)
  30.     buffer[i] = rand() % 26 + 'a'; // получаем рандомное число и остаток от деления на 26, и отсчитываем от "a" букву
  31.   buffer[len]='\0'; // в конец дописываем конец строки
  32.  
  33.   std::cout << Rus("Случайная строка: ") << buffer << "\n"; // выводим в консоль результат генерации заполнения выделенной памяти
  34.   free(buffer);                                     // освобождаем память
  35.  
  36.   return 0;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement