Коннор
Массивы в C ++ хранятся в стеке. Но у стека меньше памяти, чтобы удовлетворить все потребности оперативной памяти, особенно в многопрограммных системах, существует острая необходимость в использовании различных методов для оптимизации использования памяти. Массивы указателей предоставляют простой способ для этой цели. Это снижает нагрузку на стек. Рассмотрим следующий код C ++, который иллюстрирует использование массивов указателей. Массив указателей на объекты #include
класс точка {общественность: точка () {х = 0; у = 0; } ~ point () {} // деструктор int Getx () const {return x; } int Gety () const {return y; } void Setx (int x) {x = x; } частный: Int x; int y; }; int main () {точка * строка [500]; int i; точка * ppoint; for (i = 0; I <500; i ++) {ppoint = новая точка; ppoint-> Setx (я); ppoint-> Sety (я); строка [я] = точка; } return 0; } Код определяет точку класса, которая имеет два члена данных, x и y. Чтобы использовать этот класс, нам нужно создать объект.Этот код использует точечные объекты для вычисления линейного объекта, поскольку линия представляет собой набор точек, находящихся между ее конечными точками. В нормальной ситуации, т.е. без использования массивов указателей, все эти 500 точечных объектов должны храниться в стеке, но за счет использования пространства стека указателей сохраняется.