![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Annihilator |
|
|||
![]() bytegrinder ![]() ![]() Профиль Группа: Участник Сообщений: 493 Регистрация: 21.11.2006 Где: Омск Репутация: 1 Всего: 3 |
===== Программа на двусвязные списки ====
после вызова free() структура почему-то не разрушается, хотя сделал все в отдельном проекте, чтобы проверить, чисто создал структуру с помощью malloc(), а потом удалил с помощью free(), сделав для этого отдельную функцию и передав туда указатель на структуру и все получилось, т.е. значения полей приняли неопределенный вид, а в этой проге не хочет так, т.е. после вызова free() все остается на местах Это сообщение отредактировал(а) Daevaorn - 27.11.2007, 21:42 -------------------- Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо |
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
как ты это определял? free только освобождает память, и то косвенно. |
|||
|
||||
Annihilator |
|
|||
![]() bytegrinder ![]() ![]() Профиль Группа: Участник Сообщений: 493 Регистрация: 21.11.2006 Где: Омск Репутация: 1 Всего: 3 |
В окошке дебаггера (BDS 2006) - когда видно что память особождается после прохода строчки free(что-то) значения полей в структуре сразу принимают посторонние значения -------------------- Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
Annihilator,
после вызова free() некоторое время данные могут сохраняться т. к освобожденный участок памяти просто добавляется в список свободных участков и не более того далее он может быть возвращен аллокатором при запросе через malloc() в любом случае, освобожденный участок памяти использовать нельзя во избежании последствий Это сообщение отредактировал(а) MAKCim - 27.11.2007, 22:08 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Annihilator |
|
|||
![]() bytegrinder ![]() ![]() Профиль Группа: Участник Сообщений: 493 Регистрация: 21.11.2006 Где: Омск Репутация: 1 Всего: 3 |
MAKCim, все окей я разобрался, короче после free() тут же выделяю память и память выделяется по старому адресу, т.е. по тому, по которому только что освободил, а вот почему цифарки не сбрасываются в окне дебаггера в этом случае, так это прикол среды разработки
![]() -------------------- Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Это вовсе не прикол - так устроены все менеджеры памяти и от дебаггера это не зависит. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Эх. Лучше бы для начала объясняли школьникам, как работает компьютер, ОС и компилятор - не было бы таких проблем...
|
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
bsa, поддерживаю.
|
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
bsa, мне ничего не объясняли... Я до всего доходил сам. А пока не доходил, жил с неправильным представлением и ничуть оно мне жить не мешало
![]() ![]() -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
bsa,
для школьников такие вещи будут в общем случае сложны -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
MAKCim, ты считаешь, что изучение С++ проще, чем объяснение в двух словах, как работают конкретные подсистемы компьютера? По-моему, правильный было бы объяснять им, что такое память, процессор, что делает компилятор, что делает ОС...
|
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
ты считаешь, что С++ в школе нужно изучать? ![]() не уверен... к тому же, если нормально объяснять, что делает ОС, большинство школьников не поймет о чем речь, потому как тут нужна база по многим низкоуровневым вещам а если в двух словах, то что это даст? какое-то понимание? очень сомневаюсь Это сообщение отредактировал(а) MAKCim - 2.12.2007, 14:00 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Annihilator |
|
|||
![]() bytegrinder ![]() ![]() Профиль Группа: Участник Сообщений: 493 Регистрация: 21.11.2006 Где: Омск Репутация: 1 Всего: 3 |
Если честно о каких школьниках идет речь я не понял, товарищи... но то, что когда я в отдельном(!!!) проекте ощуствил эту функцию точно так же как в старом проекте, окно дебаггера СБРАСЫВАЛОСЬ.
Так может все-таки не будем умничать, уважаемые -------------------- Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Annihilator, ты хочешь поговорить об этом в конструктивном тоне? Если нет, то советую:
1. не переходить на личности. 2. не умничать самому. 3. не говорить о вещах, о которых ты не знаешь практически ничего, в таком тоне, будто ты этим с пелёнок занимаешься. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
Random13 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 116 Регистрация: 21.11.2007 Репутация: нет Всего: нет |
Судя по всему.
Когда ты создавал и уничтожал одну структуру окно дебаггера сбрасывалось. А когда у тебя структуры идут подряд, в своего рода массиве или списке, окно дебаггера с struct** сбрасываться и не должно. А память в С такая вещь. Мой друг один раз создал массив длины 100 и обратился в проге случайно к 1000-му элементу - так ему даже BIOS стерло. ![]() В любом случае все это не повод обижаться и переходить на личности. Я вот тоже вроде и знаю чего-то, но ощущаю себя учеником и неучем. В любом случае в ЕГО глазах мы все глупые дети - так, что обиды ничего не дают, но учить нужно. Важно чего человек сам реально знает, а не кто там чего о нем сказал или подумал... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |