0 / 0 / 0
Регистрация: 09.02.2012
Сообщений: 19
1

Низкоуровневые тонкости программирования на С++

22.10.2012, 22:04. Показов 5317. Ответов 23
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Хотел бы узнать у опытных программистов, где можно найти литературу по более продвинутым вопросам программирования с С++, т.е. таких как, выделение памяти при создании экземпляров класса, доступ к методам класса, скрытое (от разработчика) создание временных переменных в процессе выполнения, хранение в памяти динамических массивов и осуществление доступа к их ячейкам (если массив хранится в виде нескольких кусков, например) и т.п. То есть по более "низкоуровневым вопросам", связанным с работой компиляторов, менеджеров памяти и др., которые не освещены в большинстве книг по С++.

ПС. Я просто не знаю как лучше (обобщенно) назвать такого рода вопросы, чем "низкоуровневые вопросы"
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.10.2012, 22:04
Ответы с готовыми решениями:

Какие книги стоит прочитать начинающему программисту С++ , чтобы понять все тонкости программирования?
Чтобы узнать основные принципы всех парадигм программирования, чего стоит и не стоит делать, да и...

Низкоуровневые функции С++
Здраствуйте. Внизу код, который выполняет такую задачу: С использованием автосборщика make...

Низкоуровневые функции работы с файлами
Добрый день. Подскажите, пожалуйста, какие есть низкоуровневые функции работы с файлами? спасибо

Низкоуровневые средства ввода вывода в UNIX
Здравствуйте!!! Помогите пожалуйста!! Вот задание. Описать функцию, удваивающую в заданном файле...

23
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,112
Записей в блоге: 2
23.10.2012, 20:23 21
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от KernelSource Посмотреть сообщение
По нему не пробежишься, инкрементируя указатель
В С++ как раз пробежишься. Там по ссылке речь про делфи (которого я не знаю), но если там так, как ты говоришь, значит там массив - это что-то типа класса, а в С++ массив это просто кусок памяти от А до В.
0
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
23.10.2012, 20:26 22
Цитата Сообщение от KernelSource Посмотреть сообщение
Динамический массив, в отличие от статического, не обязан быть непрерывным блоком данных,
Цитата Сообщение от KernelSource Посмотреть сообщение
Я бы рад, но ассемблер хромает.
У Вас не только ассемблер хромает.

Добавлено через 1 минуту
Kastaneda, да нет, быстро глянул, там тоже самое, даже процитирую:
До Delphi 4 в языке не было динамических массивов, но они существовали как концепция. Динамический массив - это блок выделенной памяти, которая управляется через указатель. Динамические массивы могут расти или уменьшаться. Фактически это означает, что выделяется новый блок памяти для массива новой длины, в то время как старая память ещё не отпускается. После чего содержимое старой памяти копируется в новую, и старый блок памяти в конце удаляется, а указатель (ссылка) массива начинает указывать на новый блок памяти.
1
0 / 0 / 0
Регистрация: 09.02.2012
Сообщений: 19
23.10.2012, 20:58  [ТС] 23
Цитата Сообщение от Toshkarik Посмотреть сообщение
Kastaneda, да нет, быстро глянул, там тоже самое, даже процитирую:
До Delphi 4 в языке не было динамических массивов, но они существовали как концепция. Динамический массив - это блок выделенной памяти, которая управляется через указатель. Динамические массивы могут расти или уменьшаться. Фактически это означает, что выделяется новый блок памяти для массива новой длины, в то время как старая память ещё не отпускается. После чего содержимое старой памяти копируется в новую, и старый блок памяти в конце удаляется, а указатель (ссылка) массива начинает указывать на новый блок памяти.
Там же:
Но динамические массивы также могут быть и многомерными. Ну, по-крайней мере, с точки зрения синтаксиса, т.к. в действительности они ими не являются. Многомерный динамический массив является, фактически, одномерным динамическим массивом, в котором каждый элемент является ссылкой на другой одномерный динамический массив.

А на счет одномерных динамических массивов (в дельфи) я кажется ступил. Я реально считал что в они могут быть в о фрагментированном виде(физически, в выделенной памяти) и доступ по инкременту указателя(как в случае со статическими массивами) для них невозможен. не могу найти где я это прочитал (недавно).

Цитата Сообщение от Toshkarik Посмотреть сообщение
У Вас не только ассемблер хромает.
судя по всему...
0
Делаю внезапно и красиво
Эксперт С++
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
24.10.2012, 06:08 24
Цитата Сообщение от KernelSource Посмотреть сообщение
т.к. в действительности они ими не являются
Пространство оперативной памяти - одномерно. Поэтому реально многомерных массивов (в геометрическом смысле) в ней быть не может. Кроме того, нормальные люди не в состоянии геометрически представить пространства, числом более трёх.

Цитата Сообщение от KernelSource Посмотреть сообщение
в котором каждый элемент является ссылкой на другой одномерный динамический массив.
Указателем, а не ссылкой. В остальном всё верно. Создание таких массивов рассматривается в любой книжке для чайников, т.к. это базовый уровень знаний языка программирования.
0
24.10.2012, 06:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.10.2012, 06:08
Помогаю со студенческими работами здесь

Низкоуровневые сокеты. Udp клиент-сервер
Здравствуйте.Помогите пожалуйста поправить код сервера,принимающего сообщение от клиента и...

Саааамые низкоуровневые библиотеки для доступа к ОС
Если мне нужен сааааамый низкий доступ к системе, к каким инструментам я должен прибегнуть?(и есть...

На чем писались низкоуровневые функции winapi
Жажду знаний, как оно все делается на супернизком уровне. На чем писали винапи? На ассемблере?

Низкоуровневые сокеты (ICMP протокол), Ошибка с типами, Клиент-Сервер
Создать для клиента генератор пакетов (для проведения атаки ICMP-Flood), а для сокета-сервера...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru