Re[64]: P. P. S. ;)
От: Pavel Dvorkin Россия  
Дата: 25.08.10 10:07
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>Егор,хватит. Пойми, наконец, что С++ тут вообще ни при чем. Если я на асме напишу этот вызов — что изменится ?


E>Да ничего не изменится. В том режиме проца, в котором работает винда адреса всё равно будут линейными, а не физическими. С++ тут при том, чот в принципе, можно представить себе реализацию, которая поддерживает особый тип указателей на физические адреса. И при их разыменовании генерит вызовы соответсвующего API. Но такой реализации С++, насколько я знаю, нет. Так что как ни крутись, но при работе по С++ным указателям ты будешь иметь дело с логическими адресами, и физические тут не при чём.


E>В общем, либо приыведи пример, когда собственно сам С++ код, а не вызовы стороннего по отношению к языку АPI, позволяет работать непосредственно с физ. адресами, либо признавай, что из С++ физ. адреса недоступны. API, которое позволяет работать с физ. адресами может быть доступно, а вот сама по себе работа, непочредственно через указатели -- нет


Егор, сил больше нет. Я тебе уже несколько раз объяснял, что С++ тут вообще ни при чем, но тебе хоть объясняй, хоть нет.
With best regards
Pavel Dvorkin
Re[64]: P. P. S. ;)
От: Pavel Dvorkin Россия  
Дата: 25.08.10 10:09
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>При том, что нет модели памяти С++.

E>Это не так. Необходимые свойства модели памяти С++ ЯВНО описаны в стандерте языка. Почитай, тоже полезно
PD>>Есть модель памяти операционной системы, в которой работает программа, написанная хоть на С++, хоть на Дельфи, хоть на асме. Это другой уровень абстракции. Модель памяти С++ реализуется поверх модели памяти ОС. При этом они не обязаны совпадать.
PD>>С++ вообще ничего не умеет.
E>Неправда. С++ код умеет непосредственно работать с памятью, по логическим адресам. Умеет вызывать процедуры, тоде по логическим адресам.
PD>>А программисты,пишущие на нем, могут сделать все, что позволяет сделать операционная система, в которой эта программа или модуль работает.
E>Это другой уровень абстракции, не имеющий непосредственного отношения к С++. С++ реализует свою модель памяти поверх модели памяти ОС. Например, можно реализовать С++, который будет на 32-й ОС работать с более длинными адресами. Просто это будет несколько неэффективно. Вот.

О господи!

Все, я больше не могу.
With best regards
Pavel Dvorkin
Re[65]: Павел! Хватит уже выкручиваться!!! ;)
От: Erop Россия  
Дата: 26.08.10 05:41
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Егор, сил больше нет. Я тебе уже несколько раз объяснял, что С++ тут вообще ни при чем, но тебе хоть объясняй, хоть нет.


Ты тут не в позу становись, а просто приведи премер кода, если такой умный.
Напомниаю тебе, что ты предположил, что я, обсуждая с тобой работу с С++ кода с памятью через указатели, и расположение в этой памяти структур данных перепутал физические и логические адреса. Я тебе сказал, что их невозможно перепутать, так как из С++ программы через указатели до физических адресов доступ получить нельзя. А ты тут уже третий день втираешь, что С++ не при чём. Возможно, это твоё "не при чём" обозначает тоже самое -- через указатели доступ получить нельзя. Но тогда бери свои слова про структуры и перепутанные адреса назад. Либо приводи пример кода, где по С++-указателям работают с физическими адресами. Либо признавай, что ты зашёл в своих измышлениях не туда.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[65]: P. P. S. ;)
От: Erop Россия  
Дата: 26.08.10 05:43
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Все, я больше не могу.

Ну раз у тебя больше нет аргументов, то признавай что был неправ и я логические и физические адреса не путал...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[66]: Павел! Хватит уже выкручиваться!!! ;)
От: Pavel Dvorkin Россия  
Дата: 26.08.10 10:15
Оценка:
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>Егор, сил больше нет. Я тебе уже несколько раз объяснял, что С++ тут вообще ни при чем, но тебе хоть объясняй, хоть нет.


E>Ты тут не в позу становись, а просто приведи премер кода, если такой умный.

E>Напомниаю тебе, что ты предположил, что я, обсуждая с тобой работу с С++ кода с памятью через указатели, и расположение в этой памяти структур данных перепутал физические и логические адреса. Я тебе сказал, что их невозможно перепутать, так как из С++ программы через указатели до физических адресов доступ получить нельзя. А ты тут уже третий день втираешь, что С++ не при чём. Возможно, это твоё "не при чём" обозначает тоже самое -- через указатели доступ получить нельзя. Но тогда бери свои слова про структуры и перепутанные адреса назад. Либо приводи пример кода, где по С++-указателям работают с физическими адресами. Либо признавай, что ты зашёл в своих измышлениях не туда.


Ты знаешь кого напоминаешь ? Школьника, которому Марья Ивановна рассказала, что при отрицательном дискриминанте квадратное уравнение корней не имеет. И в учебнике то же самое написано. И вот он теперь ходит и всем объясняет. что решений нет, потому что Марья Ивановна сказала и в учебнике написано. А когда ему начинаешь объяснять, что Марья Ивановнв еще не самый большой авторитет, и учебник тоже, и что есть еще целый мир, в котором это совсем не так — он опять повторяет про Марью Ивановну и учебник 8-го класса.

Никак ты понять не хочешь, что адресация — это свойство процессора и операционной системы, а не С++. Что эта адресация от языка не зависит. Что механизм трансляции адреса вообще от языка не зависит. Что доступ к физическим адресам возможен или невозможен, но это определяется ОС и процессором, а вовсе не языком. Что есть механизмы доступа к физической памяти напрямую (секция PhysicalMemory, пока ее не прикрыли, тот же ViryualAlloc/MEM_PHYSICAL, о котором я тебе говорил).

Все. Больше я ничего писать не буду. Можешь считать, что ты прав, можешь считать что хочешь, только отстань ради бога.
With best regards
Pavel Dvorkin
Re[67]: Павел! Вы знакомы с концепцией абстрактного мышления
От: Erop Россия  
Дата: 26.08.10 10:30
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Никак ты понять не хочешь, что адресация — это свойство процессора и операционной системы, а не С++. Что эта адресация от языка не зависит. Что механизм трансляции адреса вообще от языка не зависит. Что доступ к физическим адресам возможен или невозможен, но это определяется ОС и процессором, а вовсе не языком. Что есть механизмы доступа к физической памяти напрямую (секция PhysicalMemory, пока ее не прикрыли, тот же ViryualAlloc/MEM_PHYSICAL, о котором я тебе говорил).


Это всё не совсем правда. Язык реалтзует СВОЮ модель памяти поверх средств ОС, которая, в свою очередь, реализует свою модель памяти поверх средств процессора и устройства управления памятью и прочего оборудования, котороен реализует всё это на уровне электрических сигналов на шинах и внутри микросхем, которые, в свою очередь, реализуют всё это поверх физических процессов в проводниках и полупроводниках и т. д.

Это просто несколько слоёв абстракции. Выделение слоёв абстракции и ведение рассуждений в рамках одного слоя, называется "абстрактным мышлением". Я думаю, что ты должен быть знаком с этой концепцией, хотя бы в общих чертах
Так как обсуждение устройства списков мы вели на языке/уровне объектов и модели памяти С/С++, то и абстракции надо использовать с того слоя, а не перескакивать на устройство процессора или квантовую физику...

PD>Все. Больше я ничего писать не буду. Можешь считать, что ты прав, можешь считать что хочешь, только отстань ради бога.

Ты ещё должен извиниться за то, что заявил, что я перепутал логические и физические адреса. В то, что я считаю физические адреса недоступными для реализаций С++ под винду ты наверное уже поверил?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[68]: После дискуссии с тобой я уже ни с чем не знаком. :-
От: Pavel Dvorkin Россия  
Дата: 26.08.10 10:55
Оценка: +1 :)
With best regards
Pavel Dvorkin
Re[69]: Поздравляю! Признание своего невежества -- шаг к про
От: Erop Россия  
Дата: 26.08.10 11:28
Оценка: :)
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[70]: С кем поведешься...
От: Pavel Dvorkin Россия  
Дата: 26.08.10 14:23
Оценка: :)
Здравствуйте, Erop, Вы писали:
With best regards
Pavel Dvorkin
Re[71]: А ты не аодись с кем попало, а приноси скорее извине
От: Erop Россия  
Дата: 26.08.10 19:29
Оценка: :)
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re: опять односвязанный список
От: SpaceConscience  
Дата: 26.08.10 21:46
Оценка:
Это ж надо какую-то невинную задачку умудриться превратить в срач! Неспроста возникло мнение, что RSDN предназначен в первую очередь для срачей.
Собрался ставить минус? Да сам иди в жопу!

































































.
Re[2]: опять односвязанный список
От: x-code  
Дата: 27.08.10 06:58
Оценка:
Здравствуйте, SpaceConscience, Вы писали:

SC>Это ж надо какую-то невинную задачку умудриться превратить в срач! Неспроста возникло мнение, что RSDN предназначен в первую очередь для срачей.


Задача бессмысленная. Если бы в реальном проекте возникла необходимость очистить односвязный список с конца, следовало бы уволить того, по чьей вине такое возникло Я вообще поражаюсь тупости задач на собеседованиях.

У каждого объекта в программе есть какой-то идентификатор, по которому до объекта можно достучаться (иначе это уже утечка памяти). Для односвязного списка таким идентификатором является указатель на ПЕРВЫЙ элемент списка. Соответственно, не нужно извращаться, нужно взять этот указатель и, организовав обычный цикл по списку, его очистить.
Если для какой-то причины нужно очистить именно с конца — то рекурсия. И я бы еще внимательно посмотрел на архитектуру программы. Возможно, следует использовать двусвязный список или изменить логику хранения данных в списке, или что-то еще...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.