fork download
  1. #include <iostream>
  2. #include <string>
  3. #include <cstring>
  4. #include <algorithm>
  5.  
  6. int main() {
  7.  
  8. // Pierwsza tablica z 3 stringami.
  9. std::string *tab1 = new std::string[3];
  10.  
  11. for (size_t i = 0; i < 3; ++i) {
  12. tab1[i] = "ala ma kota";
  13. }
  14.  
  15. std::cout << "tab1 przed:" << std::endl;
  16.  
  17. // Wypisanie tab1.
  18. for (size_t i = 0; i < 3; ++i) {
  19. std::cout << tab1[i] << '\n';
  20. }
  21.  
  22. // Druga tablica na 5 stringow.
  23. std::string *tab2 = new std::string[5];
  24.  
  25. // Kopiowanie 3 stringow z tab1 na poczatek tab2.
  26. std::memcpy(tab2, tab1, 3 * sizeof(std::string));
  27. //std::copy(tab1, tab1 + 3, tab2);
  28.  
  29. // Wpisanie nowego tesktu do skopiowanych elementow i reszty tablicy.
  30. for (size_t i = 0; i < 5; ++i) {
  31. tab2[i] = "kot ma aids";
  32. }
  33.  
  34. std::cout << "tab1 po:" << std::endl;
  35.  
  36. // Wypisanie tab1 po "kopiowaniu".
  37. for (size_t i = 0; i < 3; ++i) {
  38. std::cout << tab1[i] << '\n';
  39. }
  40.  
  41. std::cout << "tab2 przed usunieciem tab1:" << std::endl;
  42.  
  43. // Wypisanie tab2.
  44. for (size_t i = 0; i < 5; ++i) {
  45. std::cout << tab2[i] << '\n';
  46. }
  47.  
  48. // Usuniecie starej tablicy.
  49. delete [] tab1;
  50.  
  51. std::cout << "tab2 po usunieciu tab1:" << std::endl;
  52.  
  53. // Wypisanie tab2.
  54. for (size_t i = 0; i < 5; ++i) {
  55. std::cout << tab2[i] << '\n';
  56. }
  57.  
  58. delete [] tab2;
  59.  
  60. return 0;
  61. }
Runtime error #stdin #stdout 0.01s 2860KB
stdin
stdout
tab1 przed:
ala ma kota
ala ma kota
ala ma kota
tab1 po:
kot ma aids
kot ma aids
kot ma aids
tab2 przed usunieciem tab1:
kot ma aids
kot ma aids
kot ma aids
kot ma aids
kot ma aids
tab2 po usunieciu tab1:
kot ma aids!X�����kot ma aids!����kot ma aids!,�L�l�����!kot ma aids!kot ma aids)