Історія винайдення Pointers

Справжні динозаври, з яких починалась історія IT (1-2 покоління ЕОМ)

Модератор: Сенсей

Аватар користувача
Mak7ym
Повідомлень: 44
З нами з: 23 червня 2023, 20:06
Дякував (ла): 23 рази
Подякували: 21 раз

Re: Історія винайдення Pointers

Повідомлення Mak7ym »

monoxrom писав: 29 серпня 2023, 14:51 "можна перевикористовувати ті самі адреси для зберігання інших данних "
так в любу змінну можна писати любі дані, це ж те саме?
Можна, але потім виникає багато проблем, наприклад, хто і коли в ту саму память буде писати і читати і чи не будуть дві змінні під одною адресою потрібні алгоритму в той самий час і як розрулити такий конфлікт

Тому пішли іншим шляхом, алгоритм робити максимально динамічним з точки зору памяті, тобто ти передаєш адрес під яким лежать дані і алгоритм їх опрацьовує без привязки до конкретної адреси.

Це зменшує швидкість обробки, але підвищує незалежність алгоритма від хардкодних адрес і збільшує портованість
Аватар користувача
Mak7ym
Повідомлень: 44
З нами з: 23 червня 2023, 20:06
Дякував (ла): 23 рази
Подякували: 21 раз

Re: Історія винайдення Pointers

Повідомлення Mak7ym »

monoxrom писав: 29 серпня 2023, 14:51 "можна перевикористовувати ті самі адреси для зберігання інших данних "
так в любу змінну можна писати любі дані, це ж те саме?
Можна, звичано, але це не те саме. Повинен бути менеджер памяті, який буде виділяти її під змінні, щоб всі знали, що цей конкретний адрес зараз тримає якесь значення і по поінтеру всі кому потрібно читає - пише. Але якщо, статично виділити адрес в одній програмі, то інша повинна вже підстраюватися і звільнити його немає можливості, бо вона статично зайнята. І навіть, якщо вона буде використовуватись тільки при старті програми, то ніхто не зможе його використати, тому що треба дивитися в код тієї програми і пробувати зрозуміти, коли можна його використати, щоб не попортити логіку...
Відповісти

Повернутись до “Парк Юрського періоду”