GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — collection-codework/cpp/memory at master · splincodewd/collection-codework

Expand file tree

/

memory

/
Copy path

Directory actions

More options

More options

Directory actions

More options

More options

Latest commit

 

History

History
History
/

memory

/
Copy path

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
bin
bin
 
 
.gitignore
.gitignore
 
 
main.cpp
main.cpp
 
 
memory.h
memory.h
 
 
memory.pro
memory.pro
 
 
readme.md
readme.md
 
 

readme.md

Outline

Оглавление

1. Решение задачи
   1.1. Пример работы
2. Теория
   2.1. new (C++)
   2.2. Перегрузка операторов new и delete для отдельных классов
   2.3. Дополнительная литература

Написать библиотеку для работы с памятью

1.1. Пример работы

2. Теория

2.1. new (C++)

new — оператор языка программирования C++, обеспечивающий выделение динамической памяти в free store. За исключением формы, называемой «размещающей формой new», new пытается выделить достаточно памяти в куче для размещения новых данных и, в случае успеха, возвращает адрес свежевыделенной памяти. Однако, если new не может выделить память в куче, то он передаст (throw) исключение типа std::bad_alloc. Это устраняет необходимость явной проверки результата выделения. После встречи компилятором ключевого слова new им генерируется вызов конструктора класса

2.2. Перегрузка операторов new и delete для отдельных классов

Операторы new и delete можно перегрузить. Для этого есть несколько причин:

  • Можно увеличить производительность за счёт кеширования: при удалении объекта не освобождать память, а сохранять указатели на свободные блоки, используя их для вновь конструируемых объектов.
  • Можно выделять память сразу под несколько объектов.
  • Можно реализовать собственный "сборщик мусора" (garbage collector).
  • Можно вести лог выделения/освобождения памяти.

2.3. Дополнительная литература

new (C++)

malloc vs new

You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.