Guest User

Code's link

a guest
Jul 23rd, 2015
407
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.54 KB | None | 0 0
  1.  
  2. char * buildstr(char c, int n);
  3.  
  4. int main()
  5. {
  6.     int times;
  7.     char ch;
  8.  
  9.     cout << "Enter a character; ";
  10.     cin >> ch;
  11.     cout << "Enter an integer: ";
  12.     cin >> times;
  13.     char * ps = buildstr(ch, times); /*это самое объявление указателя и инициализация его возвращаемым значением функции buildstr,
  14.     (указатель всегда инициализируется памятью, здесь он инициализируется
  15.     результатом функции buildstr, ее возвращаемое значение это массив, который создается в функции buildstr)
  16.     char * ps = new char;
  17.     ps = buildstr(ch, times); так для меня понятнее */
  18.     cout << ps << "\n";
  19.     delete[] ps; // здесь удаляется память, на которую указывает ps, но не сам указатель ps. ps, все еще входит в блок функции main
  20.     ps = buildstr('+', 20);/* инициализация указателя ps, значением памяти массива pstr. массив pstr уничтожается, после отработки функции buildstr. */
  21.     cout << ps << "-DONE-" << ps << "\n";
  22.     delete[] ps; // здесь удаляется память, на которую указывает ps
  23.  
  24.     system("pause");
  25.     return 0;
  26. }
  27.  
  28.  
  29. char * buildstr(char c, int n)
  30. {
  31.     char * pstr = new char[n + 1];
  32.     pstr[n] = '\0';
  33.     while (n-- > 0)
  34.     {
  35.         pstr[n] = c;
  36.     }
  37.     return pstr;
  38. }
Advertisement
Add Comment
Please, Sign In to add comment