►Возврат к куче...175

We use cookies. Read the Privacy and Cookie Policy

Проблемы, возникающие при работе с указателями на простые переменные, распространяются и на указатели на объекты. В частности, необходимо гарантировать, что указатель ссылается на существующий корректный объект. Так, нельзя возвращать указатель на локально определённый объект, как это сделано в данном примере:

    MyClass* myFunc( )

    {

        /* Эта функция не будет работать правильно */

        MyClass mc ;

        MyClass* рМС = &mc ;

        return рМС ;

    }

После возврата из myFunc( ) объект mc выходит из области видимости, а значит, указатель, который возвращает myFunc( ), указывает на несуществующий объект.

«Проблемы, связанные с возвратом памяти, которая выходит из области видимости, рассматривались в главе 9, "Второе знакомство с указателями".»

[Помни!]

Использование кучи позволяет решить эту проблему:

    MyClass* myFunc( )

    {

        MyClass* рМС = new MyClass ;

        return рМС ;

    }

«С помощью кучи можно выделять память для объектов в самых разнообразных ситуациях.»

[Помни!]