Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Структуры, динамические массивы и автоматическое освобождение памяти.
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. Дико извиняюсь, если подобный вопрос уже обсуждался, но я всё-же не нашёл ответа по своему вопросу и искренне надеюсь на помощь знающих людей, т.к. уже ничего в голову не лезет. Как можно автоматизировать освобождение памяти динамического массива в структуре? Пробовал баловаться с деструктором, но при работе с функциями, работающими с данными структурами получаем небольшую проблему в виде вызова нескольких деструкторов, в следствии чего разрушение динамического массива. Чтобы было понятнее вот программа-пример: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. на выходе получаем вылет программы ввиду попытки удаления уже удалённого массива: 1th call TEST DATA 2th call фХ#aфХ#a ВЫПОЛНЕНИЕ FAILED (значение выхода 1,, общее время: 2s) Буду благодарен за лубую помощь в данном вопросе. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 23:45 |
|
||
|
Структуры, динамические массивы и автоматическое освобождение памяти.
|
|||
|---|---|---|---|
|
#18+
ZalizoБуду благодарен за лубую помощь в данном вопросе. Заранее спасибо.конструктор копирования в классе спасёт отца русской демократии. Да и по константной ссылке лучше классы в функции передавать то Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2013, 23:49 |
|
||
|
Структуры, динамические массивы и автоматическое освобождение памяти.
|
|||
|---|---|---|---|
|
#18+
Огромнейшее человеческое спасибо. Всё заработало. Сделал так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. Также послушаюсь совета и подробнее пощупаю константные ссылки для передачи в функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 00:14 |
|
||
|
Структуры, динамические массивы и автоматическое освобождение памяти.
|
|||
|---|---|---|---|
|
#18+
Zalizo, обрати внимание на это ещё: 13720886 , да и всю ту тему почитай, там есть то, что тебе пригодится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 01:51 |
|
||
|
Структуры, динамические массивы и автоматическое освобождение памяти.
|
|||
|---|---|---|---|
|
#18+
egorych, Лучше сразу сюда . См там пример кода в разделе A successful solution Там приведен более корректный код для swap с учетом некоторых практических нюансов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 02:33 |
|
||
|
Структуры, динамические массивы и автоматическое освобождение памяти.
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, они там сделали swap свободной функцией, а не членом класса, имеет ли это значение? или это исключительно вопрос личных предпочтений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 09:27 |
|
||
|
Структуры, динамические массивы и автоматическое освобождение памяти.
|
|||
|---|---|---|---|
|
#18+
egorych, Там два приема: 1) внутри реализации swap применен using std::swap и неквалифицированный вызов swap для полей 2) swap - свободная функция Это решает следующие задачи. 1 позволяет для вложенных полей применять swap описанный в неймспейсе где описан класс поля, который может быть оптимальнее чем std::swap (а иногда и единственно возможный) 2 позволяет сам текущий класс применять в качестве вложенного поля в других классах с такой же организацией копирования через неквалифицированный swap ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.01.2013, 14:51 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=86&tid=2020523]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 292ms |
| total: | 438ms |

| 0 / 0 |
