|
помогите разобраться с утечками памяти.
|
|||
---|---|---|---|
#18+
Добрый день. В общем реализовал я динамическую структуру типа кольцо. гавнокод свой приведу. Код: plaintext 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. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126.
Кратко опишу. у меня кольцо подобно однонаправленному списку с той лишь разницей с ним, что последний элемент указывает на первый(собственно определение кольца). элементы это целые числа отличные от нуля. список я описываю структурой mystract . в main кольцо забиваем значениями, а потом insert и delete мы можем вставить и удалить элемент соответственно. собственно вопрос в delete. один из параметров это целое число. алгоритм функции находит элементы кольца равные этому параметру и удаляет их. При этом я сначала "удалял" элементы отвязывая их от соседних. но вот озаботился , что сами объекты надо удалять физически delete-шкой. 1) на мой взгляд я коряво делаю вот таким образом : Код: plaintext 1. 2.
2) Как мне проверить , что я освобождаю ли я таким образом память ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 12:21 |
|
помогите разобраться с утечками памяти.
|
|||
---|---|---|---|
#18+
andron812) Как мне проверить , что я освобождаю ли я таким образом память ? DrMemory, Valgrind. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 13:28 |
|
помогите разобраться с утечками памяти.
|
|||
---|---|---|---|
#18+
andron81insert(mystruct* item, int index, int value) Ну и чисто теоретически побурчать: кольца не применяются там, где у элемента есть индекс, поэтому твоя реализация не столько кривая, сколько бессмысленная. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 13:36 |
|
помогите разобраться с утечками памяти.
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov andron81insert(mystruct* item, int index, int value) Ну и чисто теоретически побурчать: кольца не применяются там, где у элемента есть индекс, поэтому твоя реализация не столько кривая, сколько бессмысленная. нету в моей реализации индексов. да, кольца изучаю только для повышения скилов. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 18:09 |
|
помогите разобраться с утечками памяти.
|
|||
---|---|---|---|
#18+
andron81нету в моей реализации индексов. А "int index" это что тогда? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 19:30 |
|
помогите разобраться с утечками памяти.
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov andron81нету в моей реализации индексов. А "int index" это что тогда? позиция где надо вставить элемент. я думал вы имели ввиду, что мои элементы где-то пронумерованы. нет не пронумерованы. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 19:35 |
|
помогите разобраться с утечками памяти.
|
|||
---|---|---|---|
#18+
"Позиция" это и есть нумерация. В результате см.выше. Если эту позиционность выкинуть, код сокращается, упрощается и ускоряется. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 19:42 |
|
помогите разобраться с утечками памяти.
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov "Позиция" это и есть нумерация. В результате см.выше. Если эту позиционность выкинуть, код сокращается, упрощается и ускоряется. ну не понимаю вас. вот у массива к примеру есть позиция элементов - да, причем это физическая позиция - индекс. а тут условие задачи такое которую я сам себе поставил - выставить после 2-го элемента какой-то новый элемент. но физически у кольца я никаких индексов не прописывал. Вот где тут позиция ? Код: plaintext 1. 2. 3. 4. 5.
тут "x" - это данные. никакая не позиция , не путать ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 21:09 |
|
помогите разобраться с утечками памяти.
|
|||
---|---|---|---|
#18+
andron81 у меня кольцо подобно однонаправленному списку с той лишь разницей с ним, что последний элемент указывает на первый А нельзя в векторе вместо .end() отдавать .begin() ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 21:56 |
|
помогите разобраться с утечками памяти.
|
|||
---|---|---|---|
#18+
полудух andron81 у меня кольцо подобно однонаправленному списку с той лишь разницей с ним, что последний элемент указывает на первый А нельзя в векторе вместо .end() отдавать .begin() ? нельзя . важно использовать указатели. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 22:17 |
|
помогите разобраться с утечками памяти.
|
|||
---|---|---|---|
#18+
andron81 нельзя . важно использовать указатели. для какой задачи? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 22:42 |
|
помогите разобраться с утечками памяти.
|
|||
---|---|---|---|
#18+
полудух andron81 нельзя . важно использовать указатели. для какой задачи? ну тут мне важна реализация. до векоторов я может и дойду и реализация там будет проще, но писать я вряд ли на них буду . но мне надо указателями. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 23:23 |
|
помогите разобраться с утечками памяти.
|
|||
---|---|---|---|
#18+
andron81, вышло довольно неплохо. и утечки можно если что посмотреть сделав паузу на предпоследней строке и почитав оутпут, но я их не выявил (искал подвисшие в памяти удаляемые элементы моего кольца). если кому интересно на поиск багов (хотя сомневаюсь , что будет кто заниматься этим :) ) или может полезно (студенту может какому), то пожалуйста. Код: plaintext 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. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 23:28 |
|
помогите разобраться с утечками памяти.
|
|||
---|---|---|---|
#18+
andron81 но мне надо указателями. а гвоздь вам микроскопом забить не нужно? полезный навык на случай, если вдруг окажетесь на острове после кораблекрушения микро-биологов. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 23:51 |
|
помогите разобраться с утечками памяти.
|
|||
---|---|---|---|
#18+
авторitem = deleteitem(item, 5);//ищем элементы равные 5 и удаяем их это в векторе есть изкаропки ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 23:53 |
|
помогите разобраться с утечками памяти.
|
|||
---|---|---|---|
#18+
andron81ну тут мне важна реализация Ну, у Вас получилась типичная поделка начинающего с функциями, имеющими время выполнения O(N) вместо O(1). Она, конечно, работает, но в разы медленнее чем на её месте работала бы структура, подходящая под задачу. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 00:26 |
|
помогите разобраться с утечками памяти.
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov andron81ну тут мне важна реализация Ну, у Вас получилась типичная поделка начинающего с функциями, имеющими время выполнения O(N) вместо O(1). Она, конечно, работает, но в разы медленнее чем на её месте работала бы структура, подходящая под задачу. я и есть начинающий. правда с функциями я знаком . ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 04:54 |
|
помогите разобраться с утечками памяти.
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov andron81ну тут мне важна реализация Ну, у Вас получилась типичная поделка начинающего с функциями, имеющими время выполнения O(N) вместо O(1). Она, конечно, работает, но в разы медленнее чем на её месте работала бы структура, подходящая под задачу. Ну то есть структура должна была предполагать индекс, я верно Вас понимаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 06:00 |
|
помогите разобраться с утечками памяти.
|
|||
---|---|---|---|
#18+
andron81 Ну то есть структура должна была предполагать индекс, я верно Вас понимаю? Вот тут и начинаются все проблемы - чтобы вообще не потерять все кольцо, надо помнить хотя бы один его элемент. Но ты назвал этот указатель first - поэтому все читающие твой код предполагают наличие первого элемента в кольце. Во вторых, у функции insert есть параметр int index - зачем он?? Зачем вставляя в кольцо новое звено отсчитывать сколько-то там элементов от какого-то элемента??? Ты помнишь один из элементов кольца? Ну вот и вставляй новое звено после него. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 06:26 |
|
помогите разобраться с утечками памяти.
|
|||
---|---|---|---|
#18+
White Owl andron81 Ну то есть структура должна была предполагать индекс, я верно Вас понимаю? Вот тут и начинаются все проблемы - чтобы вообще не потерять все кольцо, надо помнить хотя бы один его элемент. Но ты назвал этот указатель first - поэтому все читающие твой код предполагают наличие первого элемента в кольце. Во вторых, у функции insert есть параметр int index - зачем он?? Зачем вставляя в кольцо новое звено отсчитывать сколько-то там элементов от какого-то элемента??? Ты помнишь один из элементов кольца? Ну вот и вставляй новое звено после него. Ну да задача поставлена мной же, допускаю, что абсурдность присутствует. Но задача есть задача. Да и вопрос главный ведь не по инсерту. Бог с ним с ним с инсертом. Вопросы по delete и по утечкам памяти. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 06:41 |
|
помогите разобраться с утечками памяти.
|
|||
---|---|---|---|
#18+
White Owl Зачем вставляя в кольцо новое звено отсчитывать сколько-то там элементов от какого-то элемента??? Ты помнишь один из элементов кольца? Ну вот и вставляй новое звено после него. Ну вот бзик. Да верно подмечено, что кольцо это не понятно где начало, а где конец. Ну будем предполагать, что первый элемент это тот кто создался первым в кольце. От сюда и индексация, неявная. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 06:44 |
|
помогите разобраться с утечками памяти.
|
|||
---|---|---|---|
#18+
andron81 Ну будем предполагать, что первый элемент это тот кто создался первым в кольце. От сюда и индексация, неявная. Оккам возражает)) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 08:48 |
|
помогите разобраться с утечками памяти.
|
|||
---|---|---|---|
#18+
Изопропил andron81 Ну будем предполагать, что первый элемент это тот кто создался первым в кольце. От сюда и индексация, неявная. Оккам возражает)) ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 09:06 |
|
помогите разобраться с утечками памяти.
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 09:20 |
|
помогите разобраться с утечками памяти.
|
|||
---|---|---|---|
#18+
andron81 Ну да задача поставлена мной же, допускаю, что абсурдность присутствует. Но задача есть задача. Да и вопрос главный ведь не по инсерту. Бог с ним с ним с инсертом. Вопросы по delete и по утечкам памяти. это называется "снежный ком" ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 13:28 |
|
|
start [/forum/topic.php?fid=57&msg=39921561&tid=2017483]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 262ms |
total: | 387ms |
0 / 0 |