antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@...

74

Transcript of antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@...

Page 1: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

���������������������������������� ��������� ����

������ ������

������� ������ T � &���:���� ��� �:���� � ��� ���� �%

T � &���:���� ��� ��������%

� T � &���:���� ���%

������� T � &���:���� ��� &���:���� ���%

������B ���� ���#������ B ��= &���:���� ��� B ����$ ����� - ��� T � &���:���� ���%

�������������� - T]&&%

T � &���:���� ��� ����� � - ����%

:���� � ����� �%

�� �� ����� �%

����� #����� ����� ���� � A- .$�T � &���:���� ��� ���� - ��� T � &���:���� ���%

���� ����� ���� � - ����� �%

���� ���������� - T]&&%

����� ����������� - ���� %

����� � - ���� %

�� �� ����� �%

������� ��%

�����B ���� ���# �����B ��= &���:���� ��� � ���B ����$ �T � &���:���� ��� ���� - ��������������%

����� # ���� A- T]&& $ � �� �� ��������� ���� � �� ' '%

���� - ��������������%

������� ��%

&�- ���" ��������� � �� �� ����

&�- ���" �� � ��� �����

���� � �� ������������ ����

<� ��� �� ��� T]&&

!�������" � ���� ��� T]&&

��

Page 2: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

�������������������������������������������������� ���� ���������

������� A7@4�6 ! ����� �"����� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � A7@4�A %����� �� "����� � �������� � � � � � � � � � � � � � � � � � � � � � � � � A7B4�@ $� ���� � ������ � � � � � � � � � � � � � � � � � � � � � � � � � � � � � A7E4�B %� �� �� ������ � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � A7E

�������� @G64�6 !"����� �� �� �����* ������� �� ����� �� =������=������.� �� � � � � @G6 ���� @AE4�A $�"#� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � @G6 ����4�@ 3����� � ������� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � @G6 ����4�B 9���� �� � �2�" � � � �"���� � � � � � � � � � � � � � � � � � � � � � @GA ����4�C +����� ����� �� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � @GA ���� @@G4�4 ������� �"����� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � @G@ ���� @@@4�E < � �������� � ������ � � � � � � � � � � � � � � � � � � � � � � � � � � � @G@ ����4�F &� �"� ���� ���� � � � � � � � � � � � � � � � � � � � � � � � � � � � � @GC ����4�7 !������� �"����� � � � � � � � � � � � � � � � � � � � � � � � � � � � � @GC ��� @@F4�6G ������� ����" �� ��� ��� � � � � � � � � � � � � � � � � � � � � � � � @G7 ��� @BC4�66 %"�2��� � �"# ��� � � � � � � � � � � � � � � � � � � � � � � � � � � � � @G7 ��� @CA4�6A !��� � � �� ��� �� ���� � � � � � � � � � � � � � � � � � � � � � � � � @6G ���4�6@ �� ��� �-���� ��� ��� �-��� � ��� ��� �-���� ���"� � � � � � � � � � @66 ���4�6B ��������" �� � � ��� �"������� � � � � � � � � � � � � � � � � � � � � � � @6A ���4�6C < ����� ��� ������" �� ���� �M�� � � � � � � � � � � � � � � � � � � � � � @6B ���4�64 �� �� " �� ������ � � � � � � � � � � � � � � � � � � � � � � � � � � � � @6F ���4�6E 3� �� �� � "���� � � � � � � � � � � � � � � � � � � � � � � � � � � � � @6F ���4�6F ������� �� ����"# � � � � � � � � � � � � � � � � � � � � � � � � � � � � � @A6 �� @CC

��� @A@

��������� @AE

��

Page 3: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

�������������������������������������������������������

� ����� ��� � �� ��� �� �� � ����� � ������� �� �� ����� �� �� ������ �� ������ �� "����� � !��� 3� ������� �� ��� ��� �� ! � ���"� �������� �� �� ����� � ���� �� �����0 � � � ��������� ���� �� ��� ��� � ���� ��� �� ����� ��� �� $������ � � ��� ��� - � ��� �� �"���� ������ ����������� ���"#����� �� �������� � ��� �� ��"� ������ �������"-�� � ����� ��������

3� ���� �� ���"� � ������� � �� �� ����� � �� ����� �� �"�� �� ����� �� ���� � �"�� ������� .��� ��������� �� ���������" ��� ���� � ������ ��� �� �� ��������"#����� �� ���� ��� ��� ����� ��� � !�� ��!� $�� �� ������ �� � �� ����� �� ��� ����" � ����� ��� �� ������ �� ��� �� � ����' �� ���� ������������ ��������� �� � �� ������"#� ��� �� "� ��"#� � �� ��� �� ����� ������ �� ������ ��*����� � ���� ������� ���� �"����� )������ �� � ���� ���� ������� �2��������� �� �� ���� �������

� � �������� �� ���

!� � ��� �� ������ ����������� �� ������ ��#����� ����� �� �� �������" � ��� �� ������ ����� �����0 �� � ���� �� ����� � �� ���������� �� ��� �� ������ ���� �� � ������ �� �� �����#$����

�� � ���� �� �� ���� �� �����" �� ������� �� ����� � !�� � � �������� : ;� �� ������������� �� � ���� � ����� ��� � ��� �� � �� ��� �� ���� ������ �� ���� ��� ��� �� � �� ����

!� ������ �� ����� �� �������� �� ���-�� �� ��� �� ��� � < �� ������� �� < � �"#� ������������ � � �������� ��� ��� � �� ��� � � � ��� ����� � �������� � ������ ��0

��� ������ N(���� %

�� �������� �� ������ �� �2����� �� �� � ������ ���-�� �"#� ���� ������� �� ���� �� � ��2�����" �0�� ��� ��� � ��� < �� ��� �������� �0��, �� �� �� �������� ���� "������ �2�����" ��� ���� <� �� �� �� � ��������������#� : �� ������#�; � ���� ������" � < � ��������� ��� �� � ����� ��"���� � �� ����� �*������� �� � � ���� ���" �

������ N(���� - 1.%

� �����"� � �� ������0

��� � - # ������ N(���� $ � ,%

$� �������� �� �������" �� �� ���� ���" � ����� ���� �����"�� �� �� ���������" �� �� �������������� N(���� �� � ���� ��������, ����� � ��� �� ���� ������ ���� � �� ��� �� ������� ������ �� � ���� < � �������� �� ��� �� ��� ����"� ���������� �� ��������� ��� ��������� ��� � � ���� � ������� �� �� �� �� �� �����"� ��� �� � � � � �����" � ������� ���� �� �� ��������� ��������� ��� �� �� ���� �� ��� ��� ��� �� �������� ���"� ������� $�� �� �� ��������� ����� ���� ���� ��� �� �����" � �� ��� ��� ��� ������ ���-��� � � * � �� ������ ���� ���� � ����� ����� �"� ��� �"�� ����� �� � �� �������" �� ����� �������� � ���� �� � ��������� � ������ ���<��� � �� ��� ��� �� � ��- �� �� � ��� ��� �� ����� ����� � � ��������$��� ��� �� ��� � �"#��� � ��� ������ �� ������ �� ��� �����*�� �� ������ ���� ����

������ ���� �������� � ���� �� ��������� � �� �� ���������0 ������� �� ������ �������� ���������� �� ��������� ���� �� ��� ��� � �������� � �� ��� � ���� * � �� ������� !� ����������� ��� �� �������� ������ N(���� ��� �� � � � * � �� ������ � �� �� ����� ������ �� � � ����� ��� ����0

������ N(���� - ��� ���%

< � * � �� ������ ����"� ��� ��� ��� � �"#���� �� ����� ��� � � �������� ����"� ���������� ��� �

������� , � ��������� ������� �

Page 4: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

� ���� � ������� ��� $�� ��� ��� ������ N(���� �� ��� �� � � � * � �������� ���� � �� ��� � ���� ��� � ������ �� ��� �������� �� ���� ���" ������ ��0

������ N(���� - 1.%

�"# �� �����"� ��� ��- ��0 �� �������� ������ N(���� ��� � �� ���� � � �������" �� ���������"#���� � ��������� ���� � �� �� � � ���, ����"��� ��� ����� �� � ��� 1. � ��� �����" �

�� ����� ����� �� ����� ����� �� ���� � ������������ ������� �� ���� ����� � � �� ��" ������� �� �� ���� � � ������� � � ������ ���� �� ����������

��� �� !����� N(���� - ������ N(���� %

�� ����� �� ��������� ��� �� � � �� ����� �������" �� ������� 3� ���-���� �� ��� ��������� ��� �������" �� ������ ��� � � �� �� �� ���� ���"� ������� ��� � �������� � �� ���

!�� � � � * � �� ������ ��� � �"#��� �� ���"� � ��� �� � �� �� �� � ������ ���� ��� ���������� �� �� ����� �������*�� ���� �������� ��� ����� �� ������ ������ ����� ���� ���� ���"������ � � � �������" ��� ���� �� ������� �� � � �2�����" ��� �������� ��� �� �������" �� ��������� ������� ������� �� � �"#���� < � ��* ��� �� � ������� � � * � �� ������� �� �� ����������*��� � ���� ���� �� ���� :����� �������� �� ������ ��� ������� �� ���� ���� ������ �� ������ ���� �������" � ��� �;� � ��� �� � ���� �������� :����� ���-���"#��� �� � ������" � ����������� �� ��"#����� ��� ��� ���� ����������� � ��� * �;� $��� ������ ���� ��� * � �� ������ �������� "���� ���� �� �� ���� T]&& :� ��- ��; �� �� ��� �����0

������ ������ N(���� %

������ N(���� - T]&&%

&� ���� ����� �� ������� �� �� ������� ����� � ���� � �� ��� �������� �� �������" ��� ������ �� �"� �� ����� � �� ����� ����� ��� �� ���� $� ������� ��� � ������� �� � ������� � ����� �� ��� � ������ N(���� � ��� ��� ����� �������" ����� ��� � ���� *���� ��� ����� �� �� !����� N(���� �

< � * � �� ������ ��������� � ��� �"� �� ����� ������� � � ��* � �� ������ ����� � ��������� ������� ��� ��� �"�� �� � � �������� ��� �� � � �� ����� * ��

� � /���� ������ " ��#� ���

�� ���"#��� ��� �� ������� ��� ������� � ����� ��� �� ��������� <����*�� �� � �"#��� ���� ������ ������� �� �� ����' -� �� �������� � ���������� �� � ��� ����� ��������� � ��������� ������� 3������� �� "����� �� � ������ "���� ��� � �� ������� ���� ������ �� ����������� �� ����' �������� �� ����' -� ��� ���� ��� ���� ��� ����� �� ��� � �� �� � �������" � � ��� �"#���������������� �� �� � ��*��� � �� ������ �� ����' ��������� � ���� ������� ������ �"� ��- ��� �� ���� ����������� �� �� � ��*��� � !��� � ���������� �� �� �������� ������ ��� � �� ��*����� ������ � ������ �� "������

3�� ����������� �� �� � ��*��� ��� � ���������� �� � � ��- ���" ���������0 � � ���� ��� � ������ ���� � � �� ��� � �� � ��� � ��� � ���� � � �� ��� � �� �� ���� !��������� ����� �� �� ������ �� � � ��������� �� - ���� �� � �����" �� � �� ���� ������������������� � �� �� �� � - � ����� $��� ������ �� - �� ������� � ���� �� �� ��� �������� ����� ������� � �� � ��� �� T]&&, � �� �� �� �������� �� � ��� ���� ��� � ����� ������ � ���������� � �� �� ��� ��� ���� ������ � ���� ������� � T]&&�

3�� ����������� ���������� ������� �� ����� ��- �� �� � � ��� ��* � !��� 3� ��- ���" �� �� ���� � � ����� � ��*��� ���� ���"#� ��"#0

� ����� � .� ������� ��������

Page 5: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

������� ������ T � J

��� �� �%

T � ��%

K T � %

�� ������� ��� � ���� �"�� � ������� � T � ����� �' ���� ���0

������� T � &���%

$�� ��� ����������� ���������� �"�������� ������� � ���"����� � ������� ���� ��� �� �������� �� ����� �� ��� ��� ��-������ ��- ���� ��� ���� ��� ������� ��- �� � �� ������ � � �� ������� � �� ��� � �� �� �� � ���� � ��� � ����, �� ��- ���"

������� ������ T � 1 J

��� �� �%

T � , ��%

K T � 1%

������� ������ T � , J

�� � �� �%

T � 1 ��%

K T � ,%

��������� �� �������� �� !�� ����� ��� � ����� T � , �� ������� ��* ����"#� �� � ��- ����� ����� ������� ��� � J��� �� ��� � �� ������ �� ��� ���"� � ��� T � , ��� ���"� � �������0

������� ������ T � , T � ,%

$��� ���� �� �"��� �"�� ���"������ �� ����� � ����� � � ��- ���" �� �� ��� �����0

������� ������ T � 1 T � 1%

������� ������ T � , T � ,%

������ T � 1 J

��� �� �%

T � , ��%

K%

������ T � , J

�� � �� �%

T � 1 ��%

K%

������ � �� ������ �� ��� ������ � ��*���� �� � ����� ��� �� ��� ���� � �� ��� ������ ��������� ����� ���� � ����� ��� � ��� ������ �� !��� ��� ���� ��� �� ���

T � � - ��� T � %

� ������� ����� �� ��� ������ 3� ���� ������� �� ����� �� "����0

# �$��� � - 1.%

# �$��� - T]&&%

3� ���"� ����� �������� �� � �� ����� ����� �� ����� �� �������� �� �� ��������� �����" �� �"������ ��� �� ��� ����� � �� ����� �� � �������� �� ���������

���� � - 1.%

�� �������� � �� ���"�

������� , $ -� �� ���� �� � ������� �

Page 6: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

#���� �$ - 1.%

��� ������ �� �� � ��� ������� � ����"�� �� � ������� $������"� � � ����� ���� ���� ������� � ������ �� ���� �� �� ������ �� ����� �� � ������� �� ��� �"� ����� ������� � � �� ������� ��� �������� � � ���"� �����, ��� �� ��������� ����� �� � ������ �������� ���� ���� �����0�� ������ J��� ��� 3� �2�����" ������ ����� �� �������� �� � # ������ $���� � �� ������� ����� �� ����� ���������� ��"#0

����� � - 1.%

����� - T]&&%

���� ������ �� ������������ �� ����� �� ����� �� � ��� �"#��� � ��2� �� ��� J���� ���� � ����������� �� ������ �� "����� �������� ����� �� �� �� ���� � �� �� ��� ����� �� �� �"# ����� ��� ���� � �� ��� ������ �� ������� ���� ������ � ��*�����

./���� � ����� ! �������" �� � ��� � � �� ����*� �� � � ������ . ���-�� �� ��������� �� ��� �� ���� �� ���� � ������ ��

&��� � ��#��� � ��� �� �= &��� ��$ J

&��� � ��� � - ��� T � %

����� � - �� �%

����� - ��%

������ �%

K

�������� � ��� 3� � �����" �� � � �� - �� �� � � ����� ����� ���-��� �� ����� ���� �� �� ���� �� �� ��� ������� �� ������ ����

� �� �:���#&���B ����= ��� � ��� �� �$ J

&��� � ��� ���� - ��� T � %

���� ���� � - �� �%

���� ���� - T]&&%

&��� � ��� ����� - ����� T � #����$%

�� #����� -- T]&&$ ���� - ���� %

���� ����� ���� - ���� %

K

3� ��- ���" �� �� �� ��" ����� T � 0

&��� ����� T � #&��� ����$ J

�� #���� -- T]&&$ ������ T]&&%

&��� �0 - ����%

����� #�0���� A- T]&&$ �0 - �0����%

������ �0%

K

���������� 3� ����- ���" � ��������� ��� � ������� ���� ���� �������� �������

�����B ���� � �� # �����B ��= &��� � ��� ����$ J

� � #&��� �0 - ����% �0 A- T]&&% �0 - �0����$ J

�� �� �0���� � �� 3 3%

K

������ ��%

K

� ����� � .� ������� ��������

Page 7: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

�� � ���"�� �� ���� �"��� ������� � �� �� ��� ����� � � ���� ������� � � ������ ���� �� �� ��������� �� � ��������� �� J�2�������� � ����������� �� ��� ����� ��� � �� ����� �� "���

� � ' ����� " ��"

�� ��� �� � ����� ��� �� � ���� �� �� ��� � !�� � ������ �� ��� � �� ������� �� ������� ���� ������ ��� �� ���� ������� �� ������ ���� 3� ��������� �� ����� ��� ��� � � �� ������� ��������� ��� �� �� �� �����0 � ����� �� � ����������� �� � �� ���� $��������� �0 � ����� �� ��� < ��� ����� ������� ���� � �������� ����� �� � �� ��� � ����� �� ��� <�

� � �� ���� �� ��� ��� � ����� �� � �� ���� !�� � ������ � ����� � � � �� ��" � ��������� �� ���"� ���� � �� �������� �� ����� � �� ��� �� � ��� �� �� ������ ��� ������ $� ���� ���������� ����� � ����� �� �����

� �� �� �� ���� �� ��� ��� � �� ��� �� � ������ �-�����" � � �� � ����� ���� ����� �� ������ � �� ��� �� �� ����� ������� �� ������ �� � ��2���" �� �� ������0

��� ���N���#��� ��= ��� � ��� ���$ J

��� ��� - .%

� �#��� � - .% � � ���% ���$ ��� - ��� � ��?�@%

������ ���%

K

�� �"�������� �� �� ������ ��� � ��� ��� ��� � � ���� � � ����� �� ������ $��"#��� ������� �� �� ��" ���N��� � � �����0

��� ����(���� �?@ - J1= ,= 6K%

��� � ��� ��� - ���N���#����(���� �= 6$%

� � �� ��� � � �� � ���0

��� � ��� ��(���� - ��� ���%

��(���� - 1.%

��� � ��� ��� - ���N���#��(���� = 1$%

���� �� ��� ����� ��� ������� �� �� � ��2�� �� �������� ����� �� � �� ��� ��� �� � � ������� � � � ������ 3 ����� �� ��� ��� �� �������� � ������� � ���N��� � ��������� � ������ �� �� ��" �� ������ �������� � � ����� �� ����' ����������

��� ���N���#��� ��?@= ��� � ��� ���$%

� � ����� �� � ����� ����' -�0

��� ���N���#��� ��?T@= ��� � ��� ���$%

!�� �� �� �� ���������" � �� ����' ����� ������ �������� �� � �� ����

� � /��$� �� ��"

$��� ����� � �� ������ �� � � �� ���� ��� ����� ��������� �� ������� �� ������ ��� ��� � �������� �������� ������ ���� � � �� ����� ���������� �� ����� �� � ��������� �� ������� �������������� ���� ������ �� � ����� �� � ����� �� �� ��� <� � �� ������� � ��� �� ��� �' ���� ����"����� ���� ����� �� � � �������� �� ���� �0

< �� - ��� <?�@%

$��� ������� � � * � ��� �� � �������� ���� � ����� �� ����� �������� �������� ���

������ ��%

������� , � .������ � �� �

Page 8: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

�� ��� �� ��� � ����� �� �������� �� �� � ����" �� ����� :�� ������� �� ����' ; �� ���� * ��' ���� � � � ������� ���� ����"�� �� ������0

������?@ ��%

���� ��������� �� !�� ���� �������� ������ �� � ����' ��������� �� ��� "���� � �� ��"������� 3������������ ������� �� � � � ������ ��� ������ �� � - ����

� � ������ � ����� ��� ������ �� � - �� �� ��� ������-��� �� ���� ��� � ������� �� �� ��"� ���� ��� ��������� !� ���� � ��� � � ����� �� ������� �������� ������ ���� ������� ������ �� � �� �0 �"� �� ��� ������� ��� ���� � ������ $�� ��� � �� ������� � ��- �� ������ ������� �������� ���"� ��� ���������, � ����� �� �� ���� �"�� �� ����� ������� ��� ���� ��� � � ��� ������ ���� ���� ��� �������� � ��� ����� �� #�� � � � � #���, ��� ���� ����"�� ��� G � #� ���� #� � #��� 3 �"�� ������ �� �������� � ����� �� ����' #��� V 6 :�� ������ �� � ��2� ����� G;� ������� �� ���� ��� ���� �� �����" #� � �� ������� #�� 3�� �������� ��� ��� ������� � �����2��"#��� �� ����� ��"� � �� ���� � ������

!�� � � � ��� ���� � �� ����- ���" �� � � ������� # ����� �� ������������� $������ ���# � #���, � � ��� ����� � ������� �� � ����� # ��� �����, � ���� �� ��� # $ #���, � � ��� ���"���� �������� ������ ���� � ����� � # V 6 ��������� ��������� �� ���� �� ��� ��� �� �2���"#� � ����� ����� ����� � �� ���� � ����� � � �� � �� �����" # �� ��� ����� ?� ��� �� ��� ��� �&��� �� ����� ������ �� ���� ����� � � �� �� �����0 �� �� � �� ������� �� ����' ��� ����� � �������� ������ �� � ������ � ����� � � �� �2���� �� �����" # � �� �����" A#��� V 6�

D���� �� ��������� � � ����� ��� ������ �� � - �� ��������� � ���� � ������ ��"� �� �������� ���"� ������� �� � �2��"#������ �� � �� ����� ��� �� �2��� ��0

������� ������ N���[������ J

� ���� ������%

��� � �����%

� ���� �� �%

K N���[������ %

! ������� � ����� ��� ������ �� � - �� �2������ �� �� � ��� ������� � ������� ��0

� �� ���N���[������ #N���[������ B ���= � ���� � ��� ������$ J

���������� - ������%

����� ����� - .%

������ � - T]&&%

K

3� � ����� �� � ����� � �� ��� ������0 �� ���"� � ��� �� ��� ��� � � � ��- ���" �2��"#������������� �� ����� �� �� � � �� ���� �������� �� ���� � �����0

� ���� �� �(�#N���[������ ���= ��� � ��� �$ J

�� #. �- � BB � � ����� �����$ ������ ������ �?�@%

���� ������ ����������%

K

8�� � � � ���������" ��"#���� � ��� ���� �"���� �� � �������" � ����� � �� ��- ���" ��� ������ � ��������0 �� �����"#� � ��2�� �� ����� �� � �� �� T]&&� $�� �� T]&& ��������� �� �� �� � ��- �� � �"� ����� �� � ��� � �� ��* �� �������� �� � ��� � ����� ��� G� $� �� �� �� � ����" ��� ����� � ��� ��� ���������� �� ������

3� ��- ���" �� � � ���� ��� � �� �� ��� ������ �� �������� �� ��������� � ����[������� ����� �� �������� ��� �� "# ���� ��� ���� � ��- �� �2���� � �� �����0

����� � .� ������� ��������

Page 9: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

� �� � �(�#N���[������ B ���= ��� � ��� �= � ���� � ��� �� �$ J

����[�����#���= �$%

������ �?�@ - �� �%

K

� �� ����[�����#N���[������ B ���= ��� � ��� �$ J

�� #� � ����� �����$ ������%

�'����������� ��� ����� ����& �� �������;����������� �� ��� ��$�� �������C�������� ��� ����� ��� ����������� ����� ������&� � �� ��$��

K

3� � �������" ��� ��� ����� �� ����0

��� � ��� ����& ����� - �0#��1= , ����� �����$%

� ���� � ��� ���� �L� � - ��� � ����?����& �����@%

3� ����������" �� �� ����� ����0

�� #������ � A- T]&&$ J

� � #��� � - .% � � ����� �����% ���$ ���� �L� �?�@ - ������ �?�@%

������?@ ������ �%

K

$��� ��� ��� �������� ���� ���� �� �� �� ���� ����������� ��� �� ���� �� � ��� ����� �� ���)����� ����0

� � #��� � - ����� �����% � � ����& �����% ���$ J

���� �L� �?�@ - ����������%

K

? �"� � ��� ��������� � � ����0

����� ����� - ����& �����%

������ � - ���� �L� �%

������� , � -��!� �� ��

Page 10: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3
Page 11: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

��������������������������������������������������������

.� �� �� � �� � �����" ��� ��� �� ��������� �� 7�����,7�����,���@� ���� �������� � ��������

! ����� �� � � ���� @�A4 ����� "���� �� �� ��� � ���� �������� �� ��� ����0 ������� � ����� ����� �� �� �� �����* ������"� ���� ��� 8�* � ��������� � ��� ����� � � � �����* � A� � A������ �� � �� �����* �� ����� )�� !� � �� �������� ������ � �� �� �� � � � �����" ����������� ��� ���������� :D"���� �� ����� 4�6��;

.� %� ������ ���� ��������

< ��"#� ����� ������� ����� �� �� ����� ��� ��� ��� �� ��� �"�������� ��� � �� ��* ����� � ������������ �� �� �� � �� �

6 � �� ���� &���' � � ��� �� ���� ��� ������� ������ �� � ��"#� �� � "���� �� �"������������������

����+���� ������� � � �� ��" ��� ������� �� ���"#���� �� � ��"#� �

����� ������� � � �� ��" ��� ������� �� "���� �� � ��"#� � :D"���� �� ����� 4�A��;

.� 4����� ���!������ ����

! �������� � ��������� � ��� �������� �� ������� ��� ����� �� � � ����� � ��� �� ��-��� ���������� �� ��� ���� ��0

� � � � � � � �� � � � � �� � � � �� � � � �� � � �� � � �� � � �� ����

! ! � # / !!

�� ����� ��� ��� ���� �� ���� � ��� -��� � ���������� �� ���� � �� �������� � �� ����� �������� ������ ������ ���0

� � � � � � � �� � � � � �� � � � �� � � � �� �

� � �� �� �� �� �� ���

! ! ! � # # # . . 3 /

�� ��� � ���������� � ��������� � ��� � ������ �� ����� ��� ������� � ������ �� �� �������,��� ��0

R6 6 A B E E F 66S � R6 6 6 A B B B C C 4 FS�>, 6*8-)14> �� �>, 6*8-)14> ���

���������� ���

Page 12: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

.� '���� �� ����#��� � ��� ��8���� ����

!���� ������� ������� ������ �� � �2�" ������"� �� �� ����� ������� � �������� ��"� � � ���������� � �2�" � ���� �2�" ����� ��� �� ���� �" �� ������� ��*� �� ������� ������� � �� ������� ���� �� ��� ��� � �� � � �� ������ � � -��� ��� �*�� �� ������� �� ������ �� ������0

(��� ���� 18�,> 9�,�,...

W�� ���� 18�,. 9�,�,...

W�� ���� 1>�.E 9�,�,...

(��� ���� 1.�>2 9�,�,...

(��� ���� 9�1, 9�,�,...

W�� ���� 1,�.E 8�1�,...

(��� ���� 19�1, E�1�,...

!��� �"# �� ��J��� � � � �� �� ���� ���� ��� ���� �� �"�� ����� �� � �"�� � ������ !��� �"# �� ��� �:6; �� ��� �� ����� :(��� � ���� ��� � ����*�� � � �2�" � W�� � ���� ��� � ����� ��;� :A; �� ���� ��� ������� :@; �� �� � ��� �����" �� ��� � � :B; �� �����

������� � � �� ��" ��� ������� �� ����� ���� ��� � ����� ������ � ����� � ����� � ����������� �������� ������ � �� ������ � ������ � ��� �� � ��� ���� ����� �"# ��� ��J��� ��� �������� �� ���� �"���� �� ���� � � ����� � ������ A4 ��� � @ �� ��� :�� "������ � �2�" ���" 7��� � F �� ��� � �� � ����� 64 ��� � CC �� ���;� � &���� ���"� � ����� �������� ��� ��� � ��������*" �� ������� ���� �� @ ��� � A6 �� ����

.� ��� �� �� �� ���� ���� � ���������

< � ����� ������� :� ����� �� +(; �� � � ������� � ������ � ���� �� ����� �� � ������ $�������� � �� ������ �� +( ���� ����� �� ��' ��� �� �� �� �G� 6� B� 4�0

� � � �

�� � ���"�� ��� ������� ����� ������ �� ���� � � �� ���� ������� �� ����� ����� ��������� �� �������� �� ���� � �� ����� ��� � ��� �� ��' ����� $� ������� � �� ����� � ����� �� ����� ����� ����� ������� G :W G� G;� 6 :W 6� G;� A :W 4� B;� @ :W B� 6;� B :W B� G;� C :W 4� 6; � 4 :W 4� G;�6 � �� ���� &�- � � ��� �� ���� ������� ���� ��������� � � ����� ����� �� ��"# �� ���������� �� �� ������� � ����������

0 ����� �� ������ I�� �� ���J ������� � ���������� ��� ������M�� �� � �� � �� ����� ���� ������������� � � � +( ����� $� ������� ���� �� ����� � ������ ������� ��� ����� ���� ����� A :W 4�B;�@ :W B� 6; � C :W 4� 6;�0 ����� �� ������ I ������J �� ����� �� �' ���� ����� ������� � ��� �������� �� ����� �����������"� ��� �������� ����� �"��� $� ������� � � � ����� ����� ������ � �G� 6� 4�� ����� ������������"� �� ����� ��� C� �� ��� C W 4 � 6� $�� � � ��* ��� � �������� C �� � � ������ ��� ������� ��� �� � �� ������ �����"� �� ������ ����� B� �� ��� B W C� 6, ���� ����� ����� � �� ����� ��� ����� �� �� ������ +����*� � ��������� � ��� ������� � � +( �' ���� � ���� ��� �������������� ������

) � ���*�+� �� >� (��� ��� �� ������ ��� ������" ����� ������ � ��� ����������, �� �"# �� ��������� ���� ���� � ��� ������ ���� ����� � �������� R&��F4S�

�� ����� � .� ������� ��������

Page 13: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

.� �� ������ � ���� ���� � ���������

! �������� � ��* �� � ������� ��� � � � "���� ���� �����, ��� ��� � W 6V AV @V � � �V # �������"� # � �� :D"���� �� �������� 6�C�; �� ������� �� �������� �� ��� ������ � � "���� ��������� � ��� � ��� ���� � �� ���� � � � �� ����� ���������� �� :� � �6� ������; �� �������

�� ��� �� � � �� �� ����� ����� �*�� ��"#0 �� ��� � � ����� �� ���� � �" :� � ��� ������������"� �� � ������;� � � ���� ����� �� ���� � ���� ��� �� ������ �� ���� $� ������� ��������" �������� ��� ����� �� � � �� �� 1� 1� 8 � 7 ������� � ��� �� E� > � >� ����������� ��0

R6 6 F CS � RE B BS

�� �������� ��� ���� � ����� � ������ � ��� �� ����� �*���" �������� ��� ��� ����� ��� ����������� ��� ��� � � �" �� 6 ������ �� �� A ������� � � � �� �� # � 6 ������ �� - ���� ��� �� �� #������� $� ������� ������ � �� �� �������" RC E @S� ��� ����� �*��� �� ��������� ������ � �������0

RC E @S� RB 4 A @S� R@ C 6 A BS� RA B 6 @ CS� R6 @ A B CS� RA 6 @ B CS� R6 A @ B CS

����� �� ���� �� �� ���� ���� �� � ���� ���������� �� � � � � -������" - �� �� �� � ������ ����� ���� ����� � ��� ���� ����� �� ����������" � ����� ��� ��*, �������� ��� ���������� ��� ��"# ������� ��� �� ���������" ������ �� ���� �� �� ���� ��������� ���"��� �� ��� �� ��� � ��� �� � � ���� �������� �� � �� ����� �� �� ���� � � ����� � �� ��� � �" �� ������ ������� �� - ��� �� ����� �� � � -������" �� 6� A� � � � � # ������� � ��� ������ ���

� ���� �������� �� ��� � ���������� � ������� ��� ������ ���� �����

) � ���*�+� ���� � � ���� ����� � �� R(��F@S� �� ��� ��� � "�� � � ����� �� ����������� O������������ �� ����������P :���������� � � = 8� ! ���; ��� ���� �����"������ ��� � ����� �� ����� �������� � � "���� - �� �� ����� "���� �� �� ���� ��� �� � ������ �� �"#��� ��� ���"#��� �� �� ��0������ ��� �� ��'� �������- � ���� ��� �� ������ �)������

�� ������� ��� �� � � ��� ���"# � �� �� �� �����* ���"� ������ ��� � �� "����� ��� ������� �- ��� � ��� � ������ ��� � ����� � �� �� � - ���

.� 9�� ���� � ��� ����� ����

)�' � 8��� ������ ��� ���� ��� ��"� ����� �� - �� ���� �� +"������� �� � ��� ����� �������� � �� � �� ��� ������� ����� ���� ��*, �� � �� �� ��� � ���"� ������ � ����� ��� �������� D�� ������ 9� ��� ��� ���� �� ����������� �������� � ��� ������ �� ��� �� ��� ��� ����� � � �� � �� � ��' �� ����� ������� � � ���"���� ��������� � �����*��� � ��� ����� O8� �� ���1����1 ��� �� ���"� ��� �� ���� � �� ������ �� ������ � ������� D� � ���������� � ���������� � ����� � � ����� �� � � ����� �� ��� ���� ��� �� ��� ��� ���� � ���"� �� � � ����������� ��������P . ���� �� "#��� ��� ����� ��"#���� :K� �� ���"� � �"���* � � �����L� H���"�� ��������I�K��� ���L� ���;� ��� ����� � ��� � �����

���������� ���

Page 14: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

��� ���� ��� 8� �� ��� ����� � � ����� � �� ������� �� �� �� ����� � ��' ���� !��� ����� ��� ��� ������ � �� ��*� ��� ���"� � �� ����� �� ������ ������ ��� ��� � ���� ����� $� � �� � �������� �� ���� �� ����� �� :����� � � ��' �� � ����� � ����� �����; ��� �����"� ������ ���� 3������� �� -���� ������� ���� � �"� ���"#� ���� ���������� �� ����0

����� %� � ���

��

���*

���*

� ���

�������

��� ��

�������

��� ��

�����

����"#���� � ����� �� ���� �� ���� ��� �� ������� ������� ��� �� ���������� �� ���� ��� � ������

#��� � �� �� ������� �� �� ����������� ��� ������� �' ���� � ����� � ��' ��� �� �� ������9����"� ���"� ������� � ���������� ��� �' ��� � � ����� � � � ��' �� � �� ��� � ������ �� � ������� 9� � ��� �� ��� � ��� �� ����� � � � ��' �� ���"� ��� ���������� ��� ������ � ��� �� ���"�������� �"� �� ������� �� ����������" �

� � �� ��� K K K ������� � ���������� ��� ������� ��� ������ ��� ��� � ���� ���� ���� � ��' ���

:������� �� � ��� �� ����� ��"#��� ������� ���� �� ���� ��� ���� �� ��� ��� ������ �� � ���� ������������� �� ����� �������� �� �� �������� ��� ������� �� ������ !����� ��� ���� ������ �����������" ����� � ������� ������ �� �� � ������" �� �� ���������� �� ���� � � -��� � �����&� ���� �� ���� �� ���"� �������*�� �� � ������" �� � � ����� ������ � � ���������� ���� � � ��� � �� �� � �' ���� � �� � ������" ��������� � �� -��� ���"� �� ���� �� �"# ���0 � ��� ���"# �� � � ������" ��� � ��' �� ���� �� ������� ���� �� � � ���"����� O`P � � ��� �� �"# ������ �� ����� ������ 3� ���������� �� �� -���� ������"#� � �� -���0

N����

��

�� ��D

P� �

�� D

� �����

������ �����

S�

���

������� � ���������� ���� ������ � �� � �� ��" ��������� ������� � � -��� �� � ������" ���� ���������� �� ���� � �� ������� ������� ������� �� ���������� ��� ��� ������ �� ������������ ���� � �� ������ � ������ �� �� � ������" �� � -����

� ������� ������ ?� �"� ����� �������� � ������� ��� � ����� �� ����������� �� �� ��������� � ������� ���� ��� ����� �� ����� ������

��� ����� � .� ������� ��������

Page 15: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

.� �� ���� ���� ����� ����

< ��� ������ � �� ����� �� ������ �"�� ��� ���� �� �� - ��� ������� ����� �� ��� ��� ����� � � ������ ���� ���, �� ��� �� ����� �� ��� ������ ���� ������ �� ���� ��� � ���� *�� ���� ��� ������&� ����� �� ��� � "���� �� ��� ������ ����� ������� � �� ����� �� �������"� �"�� ��� ���� � �� - ��������� ����� �� ��� ��� ������ �� ����������, �� ��� ����������� � ���������� ���� ���������� ����� ���������� � � "���� ���� ��� � ������ � ����� ������� 8�� ��� �� �� ������ �� ���� �� "���� �"�� �� � ������� ���� ��� ����� � "���� ������ �� ��� �� �� ��� �������

. ��������� ������� ��� ������ � ���������

�� �� �� � ��� �� �#���� � � � ������" �� �� "����� � -��� � ���� �� ���� � � ��������� � "����� � ���� -�� � � ���� ���� �� �� ��� ���� ��� �� ���� �� �� ����� �� �� ���� -������� ���� � � ��� �� ���� ���� ��� ������� �"� �� ���� ����� 8��������� �� �� "����� �����*������� ����� � � ������� �� ��� � � ���"���� ����� ���� � ��� �� 6 � �� ��� 3� ��������

5����� 4�60 !������ �"���� �� 3� ��

�"����� � ����� �� ����� �� � ���M����� � ����� � � ���� ������� �� ���� � ������� � ����� ���������� �� �������� �� �� "������ �� �� � �� � ���� < �� �� ������� �������� �"����� � ����:���� X; �� �� �� 3� �� :-���� 4�6; ��� ������� � � � ���� �� �� � ������ ���� �� � �� �� � �������� .������ �������� �����"� �� � ���������� �� �� ��������� �����'� � �� � � ����� � ��� ����� ������ &M���� :6BEF[6CA6; �����*" �� ������ ���������� � 6C6B� � �� ����� � � �������� ������ �� �������0

64 @ A 6@

C 6G 66 F

7 4 E 6A

B 6C 6B 6

H$����� ��� �� ���� ��� ������ � �� �������I � � � �� ��� ������� �� �� �������� �� �� "���� �,������ � ������ �� �� ��������� � � (���"# :6FCA[67A4; � ����" �� ������ ���

���������� ���

Page 16: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

6 6B 6B B

66 E 4 7

F 6G 6G C

6@ A @ 6C

��� �� � ������� �"���� ��� ��� :�� ��� � ��� � �� "����� � ��� �� 6 � �� 64; ��� ���� ����� �� �������� �� ��� ��� -���� ���� �� � ���� ���� ���� � ����� @@ � ���� ����

������ � ������� &�- � � ���������� ��� ������� ������� ��� � ������� ����� �� "����� �� � ����� � ������� �"�����

�������� ���� �� �� ��� ���� 8�� � � �� �"��� ���� �� � �������" �� �������� �"������� ��� ����� ��� �� ����� �2������ � � ������0 ��� ���� ��� �� ����� �� ���� � ��������"���� ��� ��� ��� � � "���� ����� �� ����� ��� �� ������� � ������� �� ��� �� �� $������������� �� ������� �� ���� ��" C� C �� �� �� � ������� �� ���� ��" ����� 3��� ����������� "����� ��� ��"� � �� ������� �"���� :� ���� ��� ��� 6 �� AC; � ��� ������ ��� ������ � ������� ���� �� �*������� � ������ ��� *� � �� �� ������� �������� �� � ���� �� ����� ������ ��0

6

4 A

66 E @

64 6A F B

A6 6E 6@ 7 C

AA 6F 6B 6G

A@ 67 6C

AB AG

AC

8��� �� ���� ��� �������� ��� ����� ��� �� ������� ��� ������� � ������� $��� ���������� ������� �"���� �� ��� ��� � �� ���� ��� ������� �� "����� ��� ���"� ����� ��� ��������� ����� 5��"�� � � �� ����� �������0

6

4 A

�� ����� ��� ��� "���� �� ������*� �� �� � ����� ��� ������� ���� ���� �� � � ��� ������������� �"� ���� � ����� � � ���� � �� �������� 8��� ����� � ������ �� "�������� � ��� � �� �������0

��� ����� � .� ������� ��������

Page 17: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

6

4 A

66 E @

64 6A F B

A6 6E 6@ 7 C

AA 6F 6B 6G

A@ 67 6C

AB AG

AC

66 E @

64 6A F B

A6 6E 6@ 7 C

AA 6F � 6B 6G

A@ � 67 � 6C

AB AG

AC

! �� ���� �� �� ����� �� ��� ���"� ����� �����*��� ������ �� � "�����0 �� ������*� �� ������ ���� ���� �� ��� ����� ��� ������� �� ��� �� � ��� ���� ��� �� � ��"# �� ������� �"�����������

66 �� E �0 @

� 6A �� F ��

6E � 6@ �� 7

�0 6F � 6B ��

A@ � 67 � 6C

9� �� � �� ��� �� �� �"��� �������� ������� � ���������� ��� ������� �� ���� �������� �"������� ���� ��" ������ :D"���� �� ����� 4�7��;

�������� �� ��� ����� �� �� ����� < �"��� ������� � �� ���� X�D �� �� Q� ��� :6@@G�6BGE; ���� �������� ��� ��� �� �"������ �� ����� � ��� �� �� ����0

� �� ������ �� ���� �������� ���� �� �� ��� �������� ��� ������� ��� �� �� � � �������

� �� ������� �� ������� � �� "����� �� � � ���� �������&��������� ������ �� ������" �� ����� � � ������0 ��� ���� ��� �� ��� � �������

�� ���� ��" ����� �������� �� ������ :���� ������ �"� �����*�� ���� ���;, �� ������� �� ���������� �� �� ������ ��0

���������� ���

Page 18: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

� �� �� �

� �

$��� ����� �� �� ������� �� ��� ��� ������� ��� �������� � ��� ��2����"�-� :�� �*������� � ������� �� ������ ���� ����; � �� � �� � � � � � ��� �������� �������� ����������� �� "���� ����� ��� ������ ���

� ����� ��� � ����� �� ������� ������� � ��� ��2����"�-� �� �� �� �� ����� � ������� �*��������!� ���� ������� ���"� ������� ��������� �� 6 ���� ����� 3� ������ �� ������� �� �� �� �� ������� ��� ���"� ������� ��������� �� A� 3� ������� ������� ����� ���"� �������� ��� �� ������ �"# ��� ��� ��������� �� B� � �� ������� ������ �� �� ����� ��� �� ��������0

6 B

4 E

6G 66

6@ 64

$��� ������ �� ����� �� �� �������� ��� �� ��� � � � �� �� �� "������ ���� � �����*�� � � ������" ��� �������� � �� � ������ ���� ��* �������� ��� �������� ��� ������� �� ������ � �*������� � ������ ���� ������� � �� � �� � � � � �������� � �� "���� �� ��� � �� ���� ���"#��

� �� ��� � ���� ��� ������ � ������ �� �� ������� ������� ��� ������� �� ������ � �*�������� �� ���� ���� ������ �� �� ��� �2���� � ����� ������ !� ���� ������� ���"� �� ������� ��������� ���� 3� ������ �� ������� ��� ������� �� �� ��� ���"� � �� �*�������� ��� ���"� ���"#�� � ���� � ��������� � ���� �� "���� A� 3 ���� ����� � �� ������ �� ������� � �� �*�������0 �� ���"� ������ � ���� �� @� 3� ������ �� �� ���"� �������� � �� �� � �� ��� ��� �������� ����� �� ������� ������ �� ������ ��� �� �������� - ��� 3� "����� ������� � �� ���� � ������� ���"� � ������ ���� ��� �� ������� ����0

6 �� �� B

�� 4 E �

1 6G 66 �

6@ � � 64

!� ������ ������� ��� � ������ � ������� �"���� �� ���� ��� �� ������ �� ��� �� �"#������� � �� � ������� �� �������

�� ������ �� �� �������� ��� ��� �� �"������ �� B ����� � � ����� ��� � ������ ?� � ����� ������ ��� ������� �� ��� B� � "� ����� �� ��� ���� ���� � ��� �������� D��� � ����� �������� �� �� �������� �� ��� F � 6A � �� ��"�� ��� � � ���� �� ����" �� ����0

�� ����� � .� ������� ��������

Page 19: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

� � � �� � � �� � � �

� � � �� � � �

� � � �� � � �

� � � �

� � � � � �� � � � � �� � � � � �� � � � � �

� � � � � �� � � � � �� � � � � �� � � � � �

� � � � � �� � � � � �

� � � � � �� � � � � �

&������� ��"�� �� �� ����" �� ���� ���� �� ��- ���" �� ������� ���� �������� �� ��� �"������ �������� ������ � ��� � ������ �� ��� �"��� ������� � ������� �� :������ � ����� ��; ������� � ���������� ��� ������� �� ���� ��������� ������� �"���� �� ���� ��" �"������ �� ������

) � ���*�+� ����� �� �� �� �"���� ��� ��� � �� �������� �2���� ���� ����� ���� �� � �������" �� �������� �"������ � R!�77S ���"�� � � ����� � ��� ���� �� �"��� ��� ������� � R�(FBS���"�� � � ���� �� � �������" ��� ��� ��� ���� �������� �� ��� ����� � ���� ��� ����������"������ � � ��� ��� �� � ������ � ������� �� ������ �� � ����0 ����������� ���� ���������������"���������

�� �� �� ( ��� � ������ ��� ���� XD � ���� �� �����"����� ������ ��� �� � ������� �� �� �������� �"������ � � ���� �� ��� �������� �� ����������� � �� ������ �"���� �� � �������" ��� ������� �� �����"����� "������� �� � �� ���� X� � �"#� �"���� �� � �������" �� ���������"������

.� �� ���������� �� � ������� ��� � ��������

< ��� �� �� ����� ��� �� � � ����� �� � ���0

� � � �6

6 � �� ���� &�- � � ��� �� ���� ������� ���� ������� ��� � ��� � ��� ����

4��� " ����� �� �� �� � &���' � � ���������� ��� ���� �� ��� ��� � �� ��� �� ������

#��� �� ��� �� �� �� �� � &���' � � ���������� ��� ����������� �� ��� ����

0 � � �� �� �� �� � &���' � � ���������� ��� ������ �� ��� ����

.����#���� � ������� ��� � �������

�� ���� � �� ������ ����� ���� �� "����� � ����� � �� ����� ����� �� �"# �� �� �� �"�2��� ����� ���� ��� ����� ����� $� ������� ���� ��� ����� ���� ������ ����

64� B7� A6� A� CF� 6C,CG� E6� A@� BG� F6� @B� A@� EC,A@� C@� AC� 6C,BC� 7G� 6A

�� �"�2��� � � ������������ ��� CF� F6� C@� 7G� � �� �"# �� �� ���� �� C@�3 ��� �� ���� �� � ��������� � ���� ��� �"������ ��� �� � ��� �� ���� ���"� � ��� ��� �

� � ����� �� �������

���������� ��

Page 20: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

) � ���*�+� �� � � ���� �� ���� �������� :���� �� R�8FES; ��� � � � �� �����*���" � ���� ������������ � ������ �� ������ �� ������� � � � � ������ � �� ������" 0 �"�2��� �"# ��� �"�2��� ���� ������ �����*���" �� ����� ������& : ��&��#$�;� � �� ���� �� ��������" � �� �����0 � ���������� ������ �� ���� ������ �� �� �� � � ��� �� ���� ��������� ��� �� �� ������ �����*��"� �������� � �"�� �� ���� ���� "�� � �� �� � �� �"�� ����������� ���� �� ������ ������� � �� �����" �� ���� �������� �� ��� � � � ����� ���� ��� ��� �� �"������� ��� ������ �� ���� �� � ����1������ ����� � �������� � ����� ���������*��� � ��������� �� R 8<7F� ��GG� %� F7� ���F7S�

.�� ������� �� � ��� �� ����� ��� ������

&��� �� ���������� ������ �� �� �� ��� �� ����� � ������"#� �� �� � ������� ��� � ������� � ���� �� � � ���� � ���� ���� �� �� � �� � �� �� ������ � ���

����������� �� �� ���� �2����� �"� ����� ������� ��� �� ���� ��� � ������ � � �� ��������� ���� �������� ���� ���� �� ������ � � �������� ������� � ������� ��� ������� ��- �� � ���� �� �����

)���.���� �� ��� �� ������� � ������� ���� ���� � � ��� �� ���� � �� �� �� .� � .� ����� ����� ��� � ���� ���� � ����� ���� ��� ����� ������� �� �� �� .� � .� �� ���� ������ �� ������ �� ������"�� �� � � ��* �� � � ����� ������" �

/���� ! �������� �� ������ �� ������ � �� � � ��� �� ����0

SantoDomingo

Tirso de Molina

SolÓpera

Callao

Gran Vía

Sevilla

Chueca

�� .� �� :��� 5#$� � .� �� "��� ;����� �� ���� � ������� ��� ����� ���� �� �� .� � .� � ���� ���� �� ������ ���0

:��� 5#$� ����� #���� "��� ;����

:��� 5#$� "� #���� "��� ;����

:��� 5#$� ����� "� #���� "��� ;����

:��� 5#$� "� ����� #���� "��� ;����

&���� ����� � ���� ��� ����� �� ��� � ��� ���� � ��� ���� �� ����� �� �� ����� ������" � �� �� � �� ����� � �����0

:��� 5#$� ����� #���� "� ����� � � �

����

$�� ���� ���� � �����"#� ��������� �� ��� ��� � � � ������ :� �-��*;� ����"�� �� ��� ����� � ����������� � � - ���� :D"���� �� ����� 4�6A��;�� ������� ��� ������� �� ��� �� �� ��� �� ���� � ����� ��� ������� � ����� ���� ������� ���

$���� �������� � ���� �� ��� �� �"# ��� �� ��������� ��� ��� ���������� � ���� ������� 9����"� �� ������ ��� ������� �� ���������� �� ���������0 ����� ����� � � ���� �� ���� � ������� ���� ���� ������ ���� � �� �� ����"#� :�� ����� � ��� �����; ��� ���� �� � ���" ����� %����� � ����3� ���

��� ����� � .� ������� ��������

Page 21: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

) � ���*�+� 3�� �� �� :�� ����� �� ����������� � � ; �� ��� ��� ���� ���� �������� � ������� ����������� �� ������ � ���� ����� �� ���������" �� ����� �������� � ������� �"�� ���� �� ������ �����2������ ������� � ��� �� � ������" �� ������ %��� �� ������ R%� F7� ��74� ��GGS�

.�� � ��������� 8�� �� ����8�� �� �� ��������� ���� ���

� ���� �������� �� ��� ��� ������� ��� � � �� ��� �������� ������ ��� ����� � ��� � �������������� :�);� < �� �� ���"#� �� ������"� � � �� ��� �� ��"� ����� �� ������ ?� ����� ��� � �)���������� ������� �� ������ ������ �� �� < ���� !� ���� �� $���� :!$<;� �� ������ �������� �� �����"����� � �� ������ �� ������ ��� ����� ������ � ��� ���� � ����� � ������ � �������� ��� ����� ����� �������� � �� ���� � � � ���� ����� ������ � ��� �������� �� !$<�&� ���� �� ���� �� ����� �������� �� ������ ������ �� !$< ��� �� ������ �� �������� � ������ ������� � ���� D���� ������ ����� �� ��� *� � � �� �������" �� �������� �� ���- ����� ��������� �� � ���� ���� ��� *�� �� �������" ��� ������ ��� �� ���� ��� � ������ ��� � ����� �� ����� ��� � �� !$< ����� � �� ��� ������� � � "�� ����� ���"� ������ ��� �����*���" �� � � ������" �� � ����� ������� �� ���� ��� � ����� ���"� ����� �*����������� � �� !$< ����� � ����� � �� ��� �� �������" � < ����� ���"� ����) �� �� !$< � ���"� ������� ���� � � ������� �� ��� � �2���� ����� ������ ��������� � �� !$< ���"� � ������� �� �) ����

������ � ���� ����� �� ��� �� �������" � �� �"��� ��� �) ��� �� � ����� �� ���� ��� ���� ������� ���� �� � ��� �-���� :���� ���� � � ��"��; � � ��� ������ � � ������� �� ��� �-����" � $��� ��� ��� ��������� �� � ��� �-���� � ��� ��� �� ��� ������� ���, � � ����� �����"�� ���� � ���������� ������ �� �� �� ���� ��

6 �� �� ���� &������ � � ���������� �� ���� ���� ������ �� �� � ������" ������� � � �������"������� ��0 ��� ��-���� ��� ����� � ����� :��������� ������� �����;� ���"��� ���"�� �' ������� ������� ����� ��� � ������� ���������

���� 2��� �� �� ��� � �� � ������ ������� � ���������� ��� ������ �� ���� ���" �� ����� �� !$<�� � ��� �-���� ��� ������� �� ������� �� ��� �-����" �� ������" ��������� ! ���� �������� ����� � �� �� ������ � �� ������ �� �� ���� � � � ������ �� ����� �� ������" -��� �� �������� � ��2� �� � ����� � ��� �� ���� �������� � ���� �� �� � ����� � ��� � ��������

$�� �� � �� ���������� �� ���� �"�� �������� ���� ������� ��� �� ������ ��� ���"� � �� ������� � �� ��� �� ��� ���� ��"� ����� �� !$< ���"� �� ������� �� ��� �-����" ��������� ���"��� �����"��������� �� � �������" �� � ����� � ���� ���������� � � � ���� �� ������� �� ��"� � � �������� �������" �� � ��������

6 ��� ������ � � �� �������� �������� �� ����� ��������� �� ������ �� ���� ���" ������� �� !$< �� � ����� � �� �"� ��� � �� ����� ����� �� �� ����� �� ������ �� �����"� � �� � ��� �� � ��� ����� ������� ����� ���� �����*�� � � ������" �� � ����� �������

������� � ���������� ��� � ������ ���� ��� ���� 9� � � ��������" ��� �����"�� ������� �������� �������" �� � � ������" �� � ����� ������ � �� ����� ������

���� 2��� �� �� �� ���� �� �� �� � ����� ������� � ���������� ��� ������ �� ���� ���" �� ������� !$< �� � ������� ������� ��� ������� �� ������� �� ��� �-����" �� ���� ���" �� ����������� � ���� ���� �� �� �� ��� �� �������" �� ����� �������� � ���� ��������� �2���� ����� ���������� ���� ���" �� ����������� ������ � � �� ����� ���� ��� �� ����� �� ���� �������� :�� �� ������; � ����� �� �� �� �� !$<� ���� ����� ����� :���� BG �� �� ������; �� �� ���� ����������� �"#� �� � ���� � �� ����� ��� � ���� �� �� ��� �� ������ ������ �� �������� �������� ������

$�� �� � �� � �� �� ��� �� ���-��� �� ���������� �� ���� ��� ��- ���� � �� ������ ��������' ���� � ���"� �����

���������� ���

Page 22: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

.�� ���� ����� �� ��� �� � �� �� � ���

�� ����� ����� ��� � ��� ����������� � �� ����� �"�� ����� �� � � ������� !� �� ������� ������� ������ � ������� �� ������� �� �� � ���� ������, �� ���� ���� �� ���� ���� � � �������" ���J�� ��� �� �"����� � �� � ������" ��� �� ��� �� ! ������� ��� � ���� ������ �� ����� ��������� �� "���� ����� �� ����� �� ��� ��� �� �� � ��������� �� ���� ��� �� ���� ��� � �� ������ � ������2������ ��� �����"� �� ���� ��� �� � ����� �"�� ���� �� �� ���� ��� �� ��������

!� ���� � �� ��� �� ������ ����� ������ �� ������ :� ������; �� �� ������ .���� ����� ��� ���� ����� ��� ������� �� ��� ����� � � ����� �� �� �������� �� �"�� ������ � �"�� �������� $�������� �� ��������� � �� �� ���� ��� �� ����� � ����� �� �������0

� 3�� �������� �� �� ���� ����� �� ����� ��� ����� � ��� �� �� ������ �� �� ������� �� ����� ��� ����� � ��� ��� ���� � �� �����

���� � ������" �� ��"� ���� �� �� ��� ��������� ��������� ��� �� ����� ������ � ���� �� ����� �� �������� �� ������ �����"��� �� "���� �� ������ �� � ����� �� ��� ���� � ���������� � ��J�2�������� �� ����� � ������ � ������� ��� �����"� �� ����� �������� � ���� �� � ������� � �� ������ ��� �"������ ������ ����� ��� ��������� �� �� ����� ������� �� �"�� �� ���� � �"�� �������

�� ���� ���� ��7 � ����� �� �� ��� ��� � ���� � ���� ������� �����" � �� � ������ ��� �� ���� �������� �� ������������ � � ������� �� ����� ��������� ���"� � � �� ��" �� ����������" �2� � ����:�"���� �� �������� @�6@; �� ����� /� :� ���� ��;, �� �� ��� �� ���� ���"����� �� -�� � ���� ��� ���� �� �� ��� �"#� �� ��� �� ������ ����� ��� ��� �� ��������� � � ����� � �� ��������� �� � ��:"� ���; ����� � ���� � �� ��� � ������ ������ � � ����� � ����� ���� /�� 9����"� ����� ������ �� ���� ��� �� � ������ ��� ��� ���� �� � �� ������� � �� ��� �"�� ���"� �� � ����� �������� ��� ���� � ������ ���������

� ���� �������� �� ����� �� �������� � � ��������" � � �� ���� /�� /�� � ��������� 3� ��������" �����"� ������� ��� � � �� ��� �������� �� ������� ���� ����� �� ������ �� � ������" 0

� �� "���� ���� �� ���� ��� ��� � ��� ��� ���� � � � �� ����� �� ����� ���� �� ������ �� �� ���� ��� � �� ����� �� "���� �� ���� ��� ��� � �� �� ��� ������� �"�� �� � ����� ����� ��"#��� :��������;�� 3� � ����� �"�2��� ��� � ���� *�� �� ����

4������ ���� ��7 � ����� �� �� ��� ��� ����� ��� 3� ������ �� �����" �� ����� ����������� � ��� �� � � ���� "� ���� �� �� # ����� ��������� �������� �� � � ����� ��� � � �"�2�� �� � ���� � ��� ��� ���� � �� ����� !��� ���� ����� �� �� � � ��� �� � ����� �����������

3� ���� ��� �� ������ �� � ���� �� � ��� �� �� ��� � �� ���� /�� /�� � ��������� $����� ����� �� ���� ���������� ��� � ��� ��� # ��������� �� ������� ���� �� � �� � �� ������ &������������ ���� � ���� ���� �� ��� �� ���� # V 6 ������� ��� ��0

��� � G 0 3� ������� �� � ���� �� ��� �� ��������������� � 6 0 3� ������ �� �� ���� 6�� � �

��� � # 0 3� ������ �� �� ���� #�

3 ��� �� ���� �� �������� ����� ��� �������� �� ���� ����� �� "����� �� ����� �������� :� ��� 6 ��;� � ���� ��������" � � ������ ������ �� ����� � ������" ��� � ���� ���� � ������" �� �����"���������� � � ������ ���� ��� ����� ��������� �� �� ��� ���������

�� ����� � .� ������� ��������

Page 23: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

��� ��/��7 ��� � �� � �� �� ����L� �� �� ( ���� �� ��/�� 9� �� � � ��� �� �� � ������" �������� �� ������� � ������ �� ����� ��� ��� � ������� �� ��� ������ �� �� � ����' �� �� ����� #� ������ �� ��� ����� �� ����� ��� �� �"�� �� � 6\ �� �� ���� ����

��������� ��� �� ��������� � ��� ����������� � ��� #� �����"� ����-����� � ������ :����� 6GG;�������� ��� �����"� ��� ��� # �� ������" - �� �"� �� �"�� ��� 7C\ �� ����� � �������� �2�����:�� ������ �� � ����� �� ����� ��� �� �"�� �� � 6\ �� �� ���� ���;�

!��� ��/��7 �� ����� �� � �� ��� ���� ��� �� ����� 3� �������� �� ��� �� ���� ��� �� ���������� �� � ��� ������ �� ��� �� � ������ � �"�� �� �� ��� � � �� ������0 � ������ �� ��������" �� ���� ���� �� ��� ����� �� �� ���� � � ����� �� ������ �� �������� �� � � ���������� �� ���� ���� ����� �� ��� �� ��� �����"#�� ��� ������������ � ���� ���������� � ����� ��� �� ���� ����3"������ ��� �� � ��� ��� ���� � �� ��� � ��� ������ � �� � �� ��� ����� � ��� ������� �"# ����� �� ������� ��� �� � ��� �� ������ ���0

& ����� �� �� ���� � ����������� ���� ��� � �� ���� �� � � �������� �������� �2� � ������ ���"����� /��

���"��� �� ������� ���� ���� �� ������ �� "���� �� ���"#���� ��� �� � ������ :�� �������� ������� ��� � ��� 6 � CG;� ��� ��� � � ����� �� ���� ��� � �� ������� �"�� �� ���� ���0

C �� ��� V G�C �� ��� � "��� �� ���"#����

� ��������� �� ������ ���"#� ��� ��������� � ��������� ����������

!�� � ����� � ���� �� �� � ������ � �� ������� ��� ����������� ���� ��� �� ��� �� � � ����� � ������

2� �� ����� �� �� ���� ���� � ����� �� � � � �� ��� �#� !�� � � ���� �� ����� ��� ��� �� �� ������� ���� �� �� ������� � �� ������ � �� ���� ��� ����� � ������

�� �� �� �� ���� �� ��� �#� �� ����� �� ��� ��" �� ���� ���� �� � �� ���� �� ������� ����� �� ��� "���� �� ���"#���� ��� � ������0

6�C �� ��� V G�6 �� ��� � "��� �� ���"#����

����� �� *��� ��� �� � ��� �� �� �� ���� �� )�� ������ � ������ �� �� ��� �� ���� ��� ������������ �� ����� � � ���� ��� �"#�� �� ��� �� ��� %*�� � ��� ����� � ����� ��� ��������"#�������� �J�� ����$��� ��J���� ���� ��������� �� �� ���� ���-��� ������ �������� ���� ��� ���� � �� �� ��

�� ����������" �2� � ������� ��� ���� ��� ��� �� ���"������ /�:�; ���������� ���"� �� �� � � ����� ���� ��� ��������� ��������� ������ ��� ���� %"�� �"� � ��� �� �� �� �� ����������" ���"#� �������������� : ���������� �� �2� � ������;� ���� ��� ��� ��� ������3 ��� �� ��� � ���"# �� �������� ��� ����� ������ ���� � ��� �� �� �� �� ����������" ��� �

������0

� �2� � ������� �� ���"����� -� / :�� ��� -� ;�� ����������� � ���� ���� �� ������"� ��� ��� �� �� �� �� ����������" � �� ��������� ������������ � ������ RG�$;� � � �� ��� :����"�� �� ������ ��� � ��� G � 6� �� �� �"���;�

? �� ��������" � ������ ����� ������ ���� ������� �� �������" � ����� ��� �����0

���������� ���

Page 24: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

� �� ���� �� �� 6G � AG ����� 3� ������ ����� �� ������� � ��� ���� ��� :� ���� ��; � �� ������ ���� ���"� �� �� ��� �"#�:�� � ���;0

����� ���� � ��� � ��� W

���AG� :�� 6G; � C ���� �� �� 6G � � � 6@C ���� �� �� 6@ � � � 6BC V :�� 6B; � C ���� �� �� 6B � � � AG

'������� ������ ��� � ��� ��/�� �� � � 3� ���������" � ����� �� ����� �� ���������� $�� �� ���������� ��� �� ���� ��� ����� ������ � � ��� ���������� ��� �� ��� ������ �������� � �� �"�� ���"#��� ���� ������� �� ��� � ���� ����� ��0 ��� �� ���� ��� �� � � � �� ��� ��� �� � ���� �� �� ���

A ���� �� ��/�� � ���� �� )��� ����� �� � ������ �� � ����� � �������� �� ��������" �� �� �� ��������� �"� ��� ����� ��� ������� ���������� ��� � ����� �������� ��"#0 ��� � � ���� �� ����� � ������ ��� � � � ����� �� �������� �� ����� ��� �� � ��� �� ������ ������ �� ���� � � ���� �����+��"#������ ��� ��� � ����� � � ���� ���"#�� �� �������

&� ���� ��� �� ������� ���"� ������ �� ������ � � ���� � �� ������" ��� "���� �� �������� � ����� �������� � �� ������ ��� ��� �� �� �� �� ���� ���� � ������" ���"� ������� ������������ � �� ��������� �� �� ������� ������� ���� �� � �������" �� ��� ��

����� ������� ��� ����������� $� �� ���� ����� � ������� �������� �������� �� ��� ������������ � � ������� �� ����� -��� ����������� � ���� ��� ���� �� �� ��� �������� ������� �� ���� ����&���� �������� �� ����� � ������ � ���� ������� � ������� ������#$�� ��� ������������ ����������� � ������� � ��� ��� �� � �� �� "���� ����� ��� � ���� � ������� ���� ����������� �������� ����� ���� ���� � � ������� �� ����� -�� :�� ������� ���� C �� ���;� �� ������� ���*�� � �

������� ����" ��� ����������� � �� ���� �"�� ������ ����

� ."���� �� ���� ��� ��� ���� ���� �� ��� ��� 5����� ��� �� � ����� �� �� ���� ����� )������" �� ��� �����"#���� ."���� �� ���� � ��� ����' ��� ���"������

� ���� � �� ��������� � �� ��� ����� � ����� ��� ��� ��� �"#��< � ��������" � ������ �� �� ������ � �� ��� �� ������ �� ���� � �������" �� ������ ��������

�� ��� ���� � �������" �� ����� ���� �� ��� � ���� ��� � �� ��� ����

) � ���*�+� 3� ��������" �� ���� ���"� �������� �� ������� � ���� ����� �� � ���������" ���������� � R$) +7ES :������� �A�@; ����� � � ������ � � � �������" �� ������ ������ � �� �"������ �� ������� � ��"#��� ���� �� ��������" �� ���� �� �������

.�� 9� ����������� � ��������� � ���C�� ���

�� ����� ���������� � ������� ��� ����� � � ����� ��� ���� �M��� ������ �� � ��"�������' � � ���������� ���� -��� ������ � �� ������ ��� �������� �� ��� ��� ������ ��� ������������� �� �"�� �� ����� ��"�� ���������� � �� ��� � �� ��� ��" � ����� ������� �� � ���"���

!����� ��� ��� ��� � �"���� � �� ������� ��� ����������� �� ���� ��������� ����� ��� �*������ �� ������ � ���� ��� ���� ���� � � �� ����� � ������ ���� �������� � � �� ���� 3�� ������ �����"� ���� ��� �"#����� �� ��� ������0 �� ������" :���"#�;� �� � �����" �� � ��� ����� �� �� �������" :�� ��� "���� �� �� � ���� � ��������; � �� � ������ ��� �� �� �� �"�� �"#��� �� � ����� ����

��� ����� � .� ������� ��������

Page 25: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

���"��� �� � �� � ����� ������ �� �� ������ ���� � ��� ����� ��� � � ��������� ����� � ���� ����������" ��� �����

��� �� � ��� �� ��� ��- ��� � � ���������� �� ���� �������� ���� �� ���� � ����� ������������ �� ���-� :�� ��������; ��� ���"#� �� �� ��� ������ �� �"������ ����������

��� ��� ��� ��� ����� 3�� �������� ������ �� ��� � �� �������� ����� ����� ��� � �� � ������� � �"���� � ����' � ���� � ��� �� ��������" �� � ��"��� � ���������� ���"��� �� ����� ������������� ��������" ���� � ������ �� � ��2� � ����' � ������ �� � � ����� �� ���� : ����;� �� ����� : ���;� ������� �� �� ��������� �� � ��"�� �"���� � �"���� � �� �� � �� �� ��2�� � ���������������� � �������� �� �� �M�"#������� 9����"� �� ���� �� ���� �� ������" � ������ ��������� ��� � ��"�� ������' �� &�������� �� �������� ���������

&���������� ��� ���� ���� < � ������� ������� ����" �� ����� �� � � ����� �� ����� �� � � �������� ��� �� ����� ����)�� )����� � �� � ����� ���� ���� �� ��� ��� ������ ��� �"���� � � ����' �� �� ������ �"���� � � � ��"��0

������ ?������

-�� ��� 7����(-��� 1���'��� '��

���� ��� ������� �� ��� � ��- ���� �� ��� ������ �� �� ��� :�� ��2����"�-�; � �� �������� ��� ������������� �� �"�������� �� ��*� �� ����� ��� ��� �� ����� ������� ��� ����� �� � ����� �� � � �� ���� �� ������" � �� �� �� � �� ������ �� -����0

�329)66*&,66*D

�?46�64,

*C* ,> I I

� � � � �

@

����� 0

3 � 0

�� ������� � ���� ����� ��� �� ���� ���� �������� � ���� �� ���� �-��� ���� ��� ��"#� ������� �� �� ����� �� ��� ��� ���"� � ������ �� �� ��� ����� ���� � ��� �� ������� < � �����" �� �� �� �� � � ����� ���� ���� ������ �' ���� � � ���� �"���� �� �����" �� �� �"�� � �� �������0

�329)66*�

�?46�

*C*� I I

�64,�

,>�

&,66*D� I I

� � � � �

����' � 0

� ��"�� 0

@3 � 0

$� ��� ������ �� ���� �� ������ :�����J�; ������� �� �� ����� ���"#� ��� ����� ��� �� ����������� ��������� � �� �"���� � �� �� ����0

-�� ���

?����

*������+�

+��

!

� � � �

� � � �

!

""

���������� ���

Page 26: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

� ���� �"� � ��� � ������ � ��*���� � ��* �� ������0

-�� ���

?����

*������+�

+��

! ! !T]&&

! ! !T]&&

�#

���

"

���C� �

���*��

!

�� ��� ��� ��� ���������� � � �� ��� ������� ���� �� ������������ �� ���� ��� �� �� � �� ���� ������� � ����� ��� �����' � H��"�� �� ��� ������� ���� �� �� �

�� ���� ����� ���"#��I H$� ��"�I H? � � ����� ��� ����� : ���� ��� �� � �������� � ����� � �"� �"���� ���;I

&���������� ��� �2� ����� 3� �������� � ������� �����"#� ������ � � �� � �����" �� ��� ����� � �� ��� ������� ���� �� � ������� �� ��� ������ ���� ���� � ������" � � � �-��� ��� ����� ��� ��� ��� ����� ��� � ������ ���� ����������� �� ���� �"�� � �� �� ����

< � �� ��� ������� ���� �� �"�� ����� ��� �� ��� ������ �� � ���� �� "������ �� ���� �� �"�������0

�329)66*&,66*D

�?46�64,

*C* ,>

� � � �

$$$$%

&&&&'

�� � � �� �� �� �� ���� ���� ��� � ��� ��� � ��� �� ��� �������� ��� � ����� �� � ������� ���� ����� ��� ����� �������� � -������ �� �� �������������

�329)66*&,66*D

�?46�64,

*C* ,>

� �

&&&&'

&&&&'

��� ����� � .� ������� ��������

Page 27: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

� � ��������� � � �-��� ��� $� �� ����� �� "������ ������������

����� ������� ���� �� �� ��� ������ � �������� �� � ����� � ����� � � ������ � ���� ���������� ���� ���� ����������� �� �����

�� �������� �� �� �� ��� �� �� ���������" �� �� "��� �� �� ��� ������ �� �������� ������ ����� � �� ������ :"������; � ��* �� � �� �� ��� ���*� � ��� ������ ����

*��

�329)66*

� �+�

+��

����?����

������������

����

�(�����"

)

)

� �

� � � �

����' �

� ��"��

*

�������� � �� ����� �� �"���� �0

*���329)66*

� �

+�+������?����

������������

����

�(�����"

)

� �

� � � �

� �

(

����' �

� ��"��

+

&�������� � �"��� ���� �� ����� ��� ����� � � � �� ��� ���� ������� ���� �� ����������

���������� ���

Page 28: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

.�� � �������� � ����� ���

� � ����� ��� �� �� " ��� � � �" ��� ��� ������� � ���� �������� ����"�� �� �� ��- ���" � ������ �� ���� � � � ����� �� �� " ��� � ��� �� � �" ���� $��� �� ���"��� �� ���� � � ������������� �� ����� ��- ���" �� �� ������� � � � �� ������� � ����� �� �������

��������� �� ���� &�- � � � ���������� �� ���� �������� ���� ������ �� � ����� ��� �� �� " ���� � �" ���� ������� �� ��� ������ �� ���� �' ���� � � ���� �������� � ��� �� " �� � ���� �" ���

0�2� � �� �� �������� ��� ���#����� � ��� ���#����� �� ��� ���#����� � ��������� �������� � ���#������ 5������ ��� �� �������� �� �� " ���� �� � � ������� � �� �� �� � � �� � ��� � ��� �� � � � ��� ��������� �� ��� �� " ����� �� ������ �� �� ���� � U� � �� �������� �� � � ��� � � � � ��� ���� ��� �������� ��� ������� � �� ����� �� �� " ���� �� �� �� ��- � ��"#0

U� W ��� � U�� � � � � � U���

8�* � � �� ��" ��� ������� �� �������� �� �� " ���� �� � � ������� � � ����� ����

0�2� � �� �� � ���� < ����� � � ����� ��� �� �� " ��� � � �" ��� �� � � ����� ��� ���������� ��� � � � � �� �� ���� ��� �� �� �� " ��� �� ��� ���� � W G� � � � � � � 6� � ����"�� �� � �� � � �" ����� ������� � � �� ��" ��� � ��� ��� ��� �� ������� � � ����� ����

0�2� � �� �� ��(����� � < � � ���� ��� �� � ��� �� �"���� � � � � �� ���� ��� � �� � ��� " ��� :����� ������� ��� � �" ���; �� � ��� � �� � � �� " ��� :� �" ���; �� �� 8�* � � �� ��" ��� ������� ���� ��� � ���� ���� �� � ����� ����

� ���� �� ��� ���������� ���� �������� � ����� 9�� ��*� �� ���������� ��� � ������� ���� ���� ��� ���� ���� ������� �� ��� �������� ���� �' ���� ����� ��������� ���� �� " ��� � �" ���� �� ����� ���� �� �� ��"#� ����� ��� ��� � � ��� � ���������� �� ���� ���� ������ �������� � ��������� ��� ���� ���� ����������� �"�� �-��� ��� ���� ����� ��������

.�� 4� ���� �� �� �� � ��� ������

� ��������� ��������� � �� ������ *� ��� � ������ �� �� ��� ��� � �� ��� �"#��� � � ��������� ������� �� ������ �������� � � ����� ��� �� �� ����" ������ � ��� �"� � �������������� ������ �������� �� �� ��� �� ����� �� �� �� �� � "���� � ������ ���� ������� 8��� � ��"#�� � � �' �� �� ����� �� ��"#� �� ����� � � �� � ���� ���� � �� �������� � ����� ����� ��� � �� ������� �� ���� ����" ���� �� ���"�� ��� �� ���� � �2������ ��� ��� ��"#� $������ ������ �� �� �� ��� �������"� ��� ���� � � �� ����, ���� �� ��� ��� ������ � �������� �� �� �� �� �������� �������"� � �� ������ ��� �� ��� ���� �� ����� �� �"����� ��� ���� ����� �� � �� ���������� �"� ����� ���� �����-�� "������ � �"#���� � �� �������� ��� ����� . ������� �� � � ����"�� ��� ��� ���� ��� ���"# �� �2��������� �"� � �������� � ��.������ �"����� ������"� ���� �����-�� "������ �"#���� �� � ���������� �� ���� ��� ��� �� ��

�"�� ��� �� �������, ���"� ����� ��� ��� �� ��� ���� 9�� ��� �*���" ���"������� �� � "���� � �������0�� ��"������ �� �������� �� ����"#�� ���� ���� ��� ��������� � � �� ���� ������� ��� �� ������ ��� �� ������ ���� ��� � �� ��* �� �� ���� ���� ���� �� �������� �� �� ���� ��� ���� �� � ���*� ���� � �� ���� �� ���� �� ����� � "����� � �� ����� �� ��� ���������� ���� �� �����"� ��"������ � ���������, � �� �������� �� -����� ������ �� �������� � ����������� :� ��� ���������� ������������; �� � � �� -���� ��� � ��� � � �� �������� �� �� ���� ��� �������� � �������� ���*��� �� ����� � ��� � �������� �� ����� � "����� ? ��"# ���"#��� ������0 �� ����� � � ����� ����������� �� ������" ��� �� � � �������� ��"#���� ��� �"#��� ���� ������ �� ���� ��� ������� � �� �������� �� -�����

�� ����� � .� ������� ��������

Page 29: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

.������ �"����� ������ � ����"� ��� �� ���� �� ��� "����, � �� ��� ��� ������� �� -����� � ����"� ��� �� ���� -���� $��� ������� �� "���� :��� ������ ��; � �� ��� �� -�� � �� ��������,������� ��� �� "���� ��� � ������� ��� �� �� ����' ��� ���� ��� �� ��� � ������ �� ��� ��� -���:�� �� � ������� ����������� �"��� ��� ��� � � ����� � � ����� �� ����; �� ������� ��� "���� ����� ��������� �����"� �� �� �� "���� ���� �� ��"#*, �� �� �� �� "���� �� � � ������� ���"� �� ������ ��� "����� �� ���� ��� �������� � -���� ��� � �� ��� � �� -���� 4�A ����� ����� � ��* �� � ������� �� -����, �� ����' � ���"� � ��� ���"� ������ �� ��� �� ������� ������� �� � �����)��

�1 :B/0/ ; �, :BHBA0 ; �,���� :4@AB;�,������ :ACAE;�,������ :6@B@;

�6 :G H ; �6���� :@4F;�6����� :EE@;�6����� :CFA;�> :<0AI ; �>���� :ABE4;

�>����� :6GA6;��� :6GBF;

5����� 4�A0 " ��� � � � ����� �� � ������� �� -����

��� � ����� " ������

D��� � � ������ �� ���� �� �"����� � ��� �� ���� � )������ $����� �� ����� � � ���� ��� �� �� ����0 ������ ���� � ����"� ��� � � ���� �� � �� ��� ����� � ���� )����� ����� �� �� �������"� ���� � ��� ������ �� ���� ����� ����������� ��� &� ���� ����� �� ������ ���"���� �� ��"� � ������ � �� ���������" ��* ��� ��������� �� ���� ����� ���� � �� ���������� ����������� � �� ��"� �������� D��� � � ������ �� ���������3� * � �� ����� �� � � ����" ����� ������ � �� ���� �������� � �� ���� �� ���� ����� !�

��� �� �� �������� 6�4� ���� ��� �� ���� �� ����� ����������� � � ��� �� �"������� ����������� ��������� $�� ���� ���� �������� �� �"�� �"�� ��- ����� � ������ ��� �"������ � ����� �*�������:��� ��;� �� � ����� 1�� � �� ������� 1�� 9� ��� ��� �����-�� � ���� ����" � "���� ��� �����*� � � � � ��� ��� ���� # ����� ��� ��������� ��� � � � � ����� 3� �� �� ��� � ����' �� �������� � � ��� G � # � 6� ������������ ��, �� � � ��� � ����' � ��� ���������� �� � �� ��� ����� �����

�� ����� ����� �� �������" �� �����*� � � ���� �� � �� �� ����, �"�� ��� ������� �� ����� � � ���

����� ����"� ��� � � ���� �� ��� ���� ����� �� ��� ����� �� �� ��*� �� ������ �� ���� ��� � � �� ��� � ������� �� �� �� ������ ��� �������� �� �� ���� ������ ��� ��� ��� ���� ����� ��� ��� ����� �� �� ��� X� 3� ���� ��� ����"� ��� �� �� ����� � ��� �����*� � :��� ��; � ���2��� �� ���� :�� V 1�� ��;� �� ���� �� �� � �� ��"����� ����� ��� ������ �� � ����, �� �� �� ��� ���� ���� �� 1������ �� ����� ��� ��������� 1

�� ����� � ��� ������ �� �� ��� # �� �� �� ����

� �� ����, ��� ���� ���� ���"� :��� ��;� � �� �� ��� � ��- ��� �� �� V

������ 1

� � �� ��� ������

���� ������ ����*� � � �� �� �� :��� ��;� ��� ����� # ����"� ����� ��� � �� ����� ������� 1��� ���� � � �� � ���� �������� � �� ����' � 1��

3� -���� 4�@� ������ ���� ������ �� ����� �� � � ����" �������� � �� ��� �� ������ ������� ��"���� �� �� -���� 4�A� �� ����' �� �� ��"#* �� 64B4A� � ������ �� ���������" � ������ �� ��� ���������� �� ����' � 6G67B� CAAG � 6GBF� ��� ����� �� ����� 8�� ��� ����� �� ������� � � ��� �� ������� �� ������ ��* ����� �� :��� � ��� �� �� ���� � ��* ����� ��� �� ��� �� ����� �� �����*� � �� ��� ��������;� 3�� � ����� ��������� �� ����� � ��� � 6G67B�64B4A� CAAG�64B4A � 6GBF�64B4A,

���������� ��

Page 30: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

�� ��� ��� ��� �� ������� ��� � � ���� 6 :1� W 6;� ���� ������ � �����"� ��� � ����� ���������3� �� �� �� ���� ��� � ��� ����� �� G� 6G67B�64B4A% G�467A � :6G67BV CAAG;�64B4A% G�7@4@� ����� � �� � -��� � �� -���� 4�@� �� � ��� � ��� �� ������ ������"#��

�+ �,-&�

-+�&��.�

-+$&��.�

-+&�*��

�,-&�

-+�&��.�

-+$&��.�

-+&�*��

�/

-,�&�**

-,$&�**

-,&�**

-&�

-+�&��.�

-+$&��.�

-+&�*��

-/&�*��

-/$&�*��

-,�&�**

-,$&�**

-,&�**

-&�

:�; :�; :�; :�;

5����� 4�@0 $���� �� � �������" �� � � ������"#�

< � ��* ��� �� ��� � ����"� ��� ���� ���� � � �� ��� ������ �� ����� ����� ����������� ��0���� ���� �� ������ � �� ����"� ���� $�� � ��� �� ��� )���� ���� � �� �� ����"� ����� ���� ����� ���������" ����� � �� �� ��� ��������� � ��� -����� 4�@� � 4�@� ����� ����� �"� ��� ��������� ���� ��� ���� �� �� �, � �6 ��� � ����� � � ���� ��� ��� ��������� 9�� �� ���� ��������� ������ ������"� ����� �� ���� ��� �� �������� ��* ����� � ���������� �� ����� � , �� ��� �� ������� �������"� ��� �� �> �� �������� ��* ����� �� �� ����� ��������� � �� -���� 4�@��3� ���� � ������� �� � ���������� �� ����� �� �� ���� ���� )���� �� ������ ������� �� �� � � �� ���

��� �� �����0 ��� ������ �� ���� �������� �� �� �� �� ���� �"� ��-��� � ��� �� ��� � ���������� G�� 6 � �� ���"# ������ "���� �� �� ���� �� �� ��� ��� ���� � � ����" �� ��"#���� ���� �� �"�������� ��� ������ 1� � 1� :�� �� ; � �� � ���� � �� ������� !�� � �� �� � ��"#��� ��� ������� �� ����� ���������� �"������ �� �� ����� ��� � ��� �� ��� ���� � � ����" ��� �������� � ���������� ����� ������ �����9� � ������� �� ������� ��� ����' �� ���"� �������� �� �� �������� �� ��� ���� ����� ���

����� �� �"�� �� ���� �� ������ ����� ����� � � ����� ��� ���� � ����� � �� ��" ��� ��� �� -����� �� ������"#� �� �� -���� 4�B ��� ���� �� ��� ���� �� ����� ��� ���� ��� ��"��� ���� ���� �� �"���� ��� ���

��� � #����� �� ������� ���

O �� �� ��� � �� �"����� ���� ������������� � ��� �� �� "<����� ����� ������"#�� �� ��� "�������������� �� ���� �� � �� ����*��� �� �������� �� ������� �� -���� �� �� ���������, ������' � � ������ �� �� � �� �� �� ��������"� ���� �� ��������� .���� �� � ������ ��� �����,��� ���� � �� ������� � �� �����*� ���� ����� ��������� � ����" �� ������� :D"�� �� ��� ������4�6E� � 4�6E��;

��� � ) � ���*�+�

3�� ������"#�� ��� ���"# ��� ����� �� � �� � �� ���� �� �������� ����� �� "������� 3�� �� ��� = � � �� ������� R=�76� � 7AS ���� ������� �� ������� �� ������ � � �������"#�� ��� �� ���� ��� ��� ����� ����� �� ���������� � �� ������ ��� �������� �� ��� ����� ��� ��������� ��� ������� 4�6E�6 �� ���� � ����, ��������� �� �� � � �� ��� ��� �������� ���� �� �� ����� �� ���� �� �� ��� ��-��� ����� $� ������� �� ��� ������ �� �� �� ����"� ����

� � ����� � .� ������� ��������

Page 31: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

5����� 4�B0 3� ������"#� � �����

���"#� ���� ������� ��� ���"#��� �������� ��� "����� ���������, � R�8�>GGS �� �������� � ������� ���� �� �� � ������ ����"� ���� � �#�� ��� �� � ������ 9����"� ����� ���� ��� � ��� �������"#�� � ��� ���� ���� ������� ���"#��� �������� �� ��� �� � �����" , � R�>��>77S �� �2����� �� ������ ������"� ���� ���� ������� � � �� ����" �� ����� ��� ����� � ����� ��� �� �����������

&� �������� �� ��� �������� �� �������� �� ���� ��������0 � �� �� ������� ������D��� ���������� �� ������� �� � ������� �� -���� :������������������������"� ������;, ���� �� ���� ���(��� � � ����" �� �� ������" �� �� ����� ��� �����*� �� "���� ��� ����"� ��� ���� �� ������ ������ ���� ����"���� � �� ��� ���� �� �� �� ��� ������ :���������������� ����� ����������;�

.�� ;� ����� �� !����� �� ������ � �������

3� ������ �� !���� ���� ������ ��������� �� ����"# �� �� ���� � ���� ��� � ������ �� ���� ���������0 ��� ������ ��� � ���������� � ��� ��� ���� ��� � �� ���� �� ������ ��� ��� ������� �����0

= A� =

==

3� ���� �� �����*�� ��� ������� ����� ���� ���� ����' � � ��� ������� ��� ��� ���� �������� �� �����&����"�� �� ���� � ����� ���� ��� � � ����' ��� ��� �������� �� ������ �� !���� ���� �� �� ��� �� �� ��� �� ������ �� �� �� ���� �� �����"#�0 K���� � ����' � ��� � ��� ������� ��������� ���� ��� �� ����� ������ � ������� ��� ���LD�� � ��� ��� ������ ������ ��� ���������� !���� ���� �� ��� � �� ��� � �� ������� � ���

������" ���� � ������� � !�� ��� �� ������� �������

/���� � �� ������ ��� ����' � ������� �������� ��� !���� ���� �� ��"� ��� � ��������

���������� � �

Page 32: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

� �� ����' �� �� �*������� �� �"���� ������� ��� �� ��� ����� ���� ��� ������� ��� ��� ��� � � "������ �������� � ��-��� ���� �� � �������� �� ����' �� �� ������ ���� �� �� � ���� �� �������� ��� ���� ���� � "���� ��� �� ������ � � ���� �� ��� ��� ������� ��� ��� ��� � �� ���� �� "������� ��� ������$�� ���"# ����� �� ��������� � �� ����' �� �� ������ ���� � � �������" �"�� ���������0

�� ��� ����� ��� � � "���� ��� �� ��������� ���� �� �"�� ��� �� � �� ��� �� ����� ����� �� � ������� ��� ����

����������� �� �� �� ���� $�� �� ���� ����� �� � ��� ����������� �� ���� ��� �������� ���� ����������� �� �������� 8�� ��� ��� ����* �� �����*�� ����' � � ������� ����� � ������� �� �� ���������� �� ���� ����' � � ����� ����� � ������� ��� ����

���� �� �� ���� �� (���� ����� � � � ����" ��-��� �� : ��������; ��� ������� ��� � ����' �� ����� ���� � ������� ��� ���� ������� � ���������� ��� �������� ���� � ����" � :D"������ ����� 4�6F��;

)���.���� �� (���� 3� ��������" ��� ��� � �� ������� � ����� ��� � ��� �����*���� � ����� �� �� ���� ��� ���� ��� ������� ������ $� �� �� ��������� �������� �� ����� ��� �� ��������� ���� ������ �� ������� ����� � � ����' � +����*� � ���������� ��� �� � ������ ������ ������

/���� � �� ������ ��� ����' � ������� ���� � � �2�� � �� �� �� �*������� �� �� ����� � �2�� � � �� �� ���� �� ����� ������ � ������� ��� ���� � �� �� �� ������ �� ����� ����� � �2� ��� �"# ����� �������� � ������� ��� ����

$��� ���� ������� � ����� �� ����� 4�6F��

������ �� ������� �� ������� � !�� ��� !���� ���� ������" � ��� ������ ���� ���� ����' � � �������� ��� �� �� �������

���� *����� ;�)� ��4��� *��� *��� �� �����*�

��� �� ��(�)������� �������� ������

;������� ����� ��*� ����(� ��� ����������)�<� ����������)�(� �� ��;�

������.� �0���*�� ���

� ����� � .� ������� ��������

Page 33: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

�����������������������������������������������������

.���� 3� ����� �� ����� �� �� �����* � �� ��� �������� �� ������ �� ������� �*������ � ��� � ����� � ������" , ���� � ������ �� ���� �� �� �����* ����� ��������� ���"� ��� � � � ��� ��� $� ��� ����� �� ������ ������ �� � �������" �� ���� ������ ���

.�2�� &�� � ��"#� � � �� � � �� � ������ �� ����� � ������� ��� �� ���"� ���� �������� ���� ��� ��� ��"#� � ��� �� �� �� "���� ��� ��"#� �� ����� � �� ���� �� ��� "����� �� ����� ���"� ���� �� ��0

$��� H�� ������� ��� �� �� � ��� � ����� �� ��"#� I

.�>�� $��� �� ���� � ������� �� ���� ��" � �� ������� �����'�� � � �����* �� ���� ��" ������� �� ��� �� � ��� ����� ����� ����������� ������� "����� ��� � ��� ���� ���"� ����� ���������� �"�����

.��2�� 3� ������#� �� ����� �� �� ���� ��� ���� ���� ��*�� �� �������" � �� - ���*���" ��� ��������$� ������� �� ����� �"����0 �� ����� � ���� �� ������ �� ����� �� �� ����� ������" �

.��/�� �� � �� �� �� ���������� ���� ������� � �� ������ ��� ����0

�.#������� �� �� ���#��( ��� ����� & ���� �� ��� �$����C���������� �� ��� ����� �� ��� ����� ��������� ��� ���#����>��������� �� �� ���������"��

�� ����� ������� �� ������ �� �� � ����� �� ����� 4�6E�, �� �� �� ��-��� ��� �� ��"�� ��� �������� ��� �� ����� �� �� ������� �� ���������" �

$��� �� �>��������� �� �� ���������"�� �� ���"� �� �������� � ��� ��� ���� ��- �� �� ����"� ����,�"����� ������ �� �� ����" �����"����� ��� � � ���� � �� ���� ������ � �����*�

������� ������ 4������ J

�� � �������?,@%

�� � �� ?,@%

K 4������ %

&� ���� ����� ���"�� ������� �� ��� �� �� ��� �� ��� ����� � � ���"����� �� ��� ��� ��������� ������� ������� �� D����� �� ������� �� ������ �� �� ���� ��� �� ������� �"������ �� � 6 �������� ��

.��/ � 9�� �� �������� �������� ��� � � � ���� �� ������� ��� �������� �� -����� D��� �������� �"� �� ��� � ����� �� ��� ����� ��� �� < �2�

3 ������ �� ����� �� �� �� � � �� ��� ������ �� � �������� � -���� 3� �� ��"

��� ����#��� � ����= ������ ��� ��� $%

���� � �� ���"����� ��� � � �" �� � ������" ������ �� � �� � ����� ������� � ����� �� ��������� ��� ���"� ��- �� ��

%����� � �

Page 34: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

������ ��� J

� ��;� ��;� ��%

� � ��� ��;��D�%

�7�� �� ����� ����� �� �� ��� ���������K%

�� ���� ��;� �� ���-��� �� � � ���� � �� ����� �� �2������� �� ������"#�� ���� ����� ��� ��� � �� ��" �������� ���� ���� ������ ������"#�, � � ������ W;[WL[4� ��� �� ������ �� �� � ����� ��� ��������� � W;[W4(O� ��� �� ������ �� �� � -��� ����� , � ��������� �� ��� � ���� �� ������ �� � ���"����� �����

�� ���� ��;� �� �����"� ���-�� �� �� -��� �� ����������� $�� ���� �2����� ���� � ������" ����� ���� ��;� �� B W;[R]W4, �� �� �������� �� ����� � �� G� �� -��� �� �����������

�� ���� ��;��D� �� �� ����' � ����� :�����; ��� -���� ���� � �� ��� ������ ���������� ������� �� ����' ���� ��� ��� �� ����� "�����

$��� ���� ���� �� �� �� � � ����� � � ������� �� ��� � ������

�������� �������������

�������� �����������

�������� ����������

< � ��* ��� ��� � � ���� � ��������� �� ����� ��� ������� �� ����� �� ��� � ��� �� < �������� �� ���� �

L[4 ������#��� � ����L����� �� $%

. ��������� ����� ��� �� �� ���� � ��� � ��� ��� L[4, � ���������� � ���� ��� ��������� � ������� �� �� ��"

������ ������ ������#L[4 ���$%

���� ��� �������� T]&&� ���� ��� � ���� ��� �� ����� ��� �"�� � �� ��������, � � ���� ���������� � ���� �� ��" 0

��� �� �����#L[4 ���$%

9���� �� ��� ����� ��� ��� ��� ������ ������0 ��� � � ���� �;��� � �� ���� �� ��� ����� ��� ������� �� �����

$��� ���� ����� �� �� �� �� ��� � ����� �� -��� �� �������� ���������

.��1�� ��� ���� ��� �����*��� � ������ �� ������* �� ���� �� ����' � � ������ �� ������" �� ������� ����� � �� �� ����, �� ����� ������ �� ���� ��� ������ � ������� ��� ���� � ������"������� �� ��� � � ���� ����� � ������ �� ������ �� ����' ��� ��� � �� ������ ������ ��0

����������������������������������������������������������������

3� �� �� ���� �������� ���� ���� ������ ��� ��� �����"#� ��� ���� � ������� ��� ���� �� ���� ����� � �� ��� �� �� �*������� ����� ��� ��� ��� � ������� ��� ���� �� ������� �� ��� �� �������� ����� ��� ������� � ������� ��� ����

� � ����� � .� ������� ��������

Page 35: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

H)������� ���� � �������� ��� ������ �����*�� ���� ������ ���� �� ���� ��� � ����� ����� � ������� ��� ���I

.��1 � $��� �����*�� �� �"������� �� ���� � � �2� � �� ����' �� ������� ����� �������� � ����� �� ����������� �� ���� ��� �� ����� � �� �����

!��� ������� ����� ���� �� �� ������ �� ����' �� "� ��� � ����� �������� �� ������� �� ������� ���� � ����� ���� �� � � ��� � ����� < ���� ��� ���� � � ���� �� ����� �� ����� � �2� �� �� ������ ��0 �� ��� ����� ���� ��� �������� ������� �� ������� ����� ���"� � � ������ ���� � ������ ������� � � ������� ���������� �� �� ���� � �� � ��� � ��� ���� ���� ���"#�������� �� �� ���� � ����� ��� �������� ���� �� � �� ��� �� � ��� ��� � �� ���� ���� � ��� ������ � ������ ����, ����� � ���� � ��� ���� �� �� ��� ���� ��� � ��"# ���������� ��� !�� � � �� � ��������"�� � ��� � �� ���� ����� ��� ��� ��� ���"� � ���� ���� � ��� � �2� �� �"� ����� ��������� �� ���� � ������ � � ��� ����� � � �� ����� � ������ � ��� *�� � ��� ���� ���� ���"#�� �- ��� �� ����� � � ������ ����� ����� �� � ���� � � �� ������ � � �� � �������� ��� ���� � ��� � �2 ���� �� ��� ������ ������� �� ������ �� ��������" ������ ��� ���

%����� � �

Page 36: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3
Page 37: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

���������������������������������������������������������

.� �� �� � �� � �����" ��� ��� �� ��������� �� 7�����,7�����,���@� ������� ��������

� ��� ����� ������� � ���������� ����� �� ��� �������� ��� �� �����* � ��* �� � � ��� � ���������� �������� �� �"�� �� ���� ��� �� @�A4� � �� ������ � � ��� � � �����" � �� �"�� ��������� ��� ������� ��� ��� � ��������"� �2����� ��� ������������ ��� � ������ � �� �������� �������

�� � 4� ���� ���

����� ��� ��� ������� �������� )� � ��� �� ��� )� � �� ������ �� ������� �*������0

����G @ HI HIA 6 HI HIHI HI HI HIHI HI HI HI

����

8�� ��� �������� �� ������ ��� ���� ���� � ������ ���� �������" � � � �����* )� �������0 :6; ������������ �� B �� ������ �� ������� �*������� :A; ������ �� ���� �� ������ ���� � :@; ����� ��� � ��� ���6� A � @ � �� ����� �� �� �� ������ ��� ���� �� $��"#��� � �� ��� ���� � � �� ����� ������ ��� � ��������� � � � � ��� � ������ �� ���"������� $� ������� �� ������" ��� ���� � � ����" �������� �� ����' � � � ����� �� �����" :� � � ; �� �� �����* �� � �� �����" :��� ��; �� ���

�� ��"#� �� ������ �� ��������0

� �� ���� ��#P���D ���= ��� � ��� ��= ��� � ��� ��=

P���D �� = ��� � ��� � = ��� � ��� � =

��� � ��� �$%

$�� � ���������� � ����� ���"������ �� � � � ������" �� ��� ��� �� ���� $������� �� ����������� � ���� �� ��� � � ���� �� ���� ���� � ����� ���� �� �� ��������*0 � ��* �� � ������*�

. ���� � ����� ���� � ��� � � �����* � � � ��������*� < � �����* �� ������� � � �����

������� ������ 4�� � J

��� �% ��;����� %����� �% ��;����� ���������� ���% ��4���6��

K 4�� �%

�� � � ����� �� "����� ������ �� ��

������� ��� P��P���D%

=� �"� ��� �� ���0

������� ������ P���D J

4�� � ��� �%

P��P���D �� �%

K P���D%

�� ������� � �

Page 38: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

3� �2������" �� � � ��������* �� ��� � ���� ��� ������� �� ����� �� "����� ��� ��� ����-��� � ��� ����" 0

P���D �������D#P���D � ���B ��= ��� � ��� �= ��� � ��� �= ��� � ��� �$ J

P���D ���%

������� ��� - ������ ��� � �%

������� ��� - ������ ��� � �%

������� ����� - �%

������ � - ����� �%

������ ���%

K

! ���� ��� �*���" � ���� ���� �� ���� �� ������������ �� ��������� � ���������� ������ �����"������� ����� � ���� ����� � � �����* � ���0

� �� � ��#P���DB ���= P���D �� $%

3� �� �� ������ �� ���� �� �� � ������� � �� �������" �� � �� � �������D0

��� - �������D#���= ��= ��= �$%

� ��#���= �������D#�� = � = � = �$$%

� ��� ������ �� ��� ������� � �"�� �� � � �����*� �� ����� ��� ������� �� ������� �� ������ ��� �� �� ����' �� $��� �� ����� ���� � ���� ��� � �� ��������� �"� �� �"# �� �� ��� ����������0

� �� � ��#P���DB ���= P���D �� $ J

��� � ��� � - ���#������� �����= �� ���� �����$%

� � #��� � - .% � � �% ���$ J

� � #��� � - .% � � �% ���$ J

������ �?������� �����@?������� �����@

- �� ��� �?�� ���� �����@?�� ���� �����@%

K

K

K

3�� ������ �� ���� ����� ����������� �� � � � ��� �� ��� �� ����� �� �� � � �����* � ��������� :���"# ��� �� �� ����;0

� �� ���#P���DB ���= ��� � ��� �$ J

��� � ��� � - ������� �����%

� � #��� � - .% � � �% ���$ J

� � #��� � - .% � � �% ���$ J

������ �?������� �����@?������� �����@ �- �%

K

K

K

5� ���� �� ����� �"� � ������ � �������� � � �� ����� ��������� !�� � ������� � � �����*�� ��� ����� ��� ����� ��� ������� �� ������ �������� �������0

� ����� � .� ������� ��������

Page 39: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

P���D ���#��� � ��� �$ J

P���D ��%

������ ��� - .%

������ ��� - .%

������ ����� - �%

����� � - ��� ��� ?�@%

� � #��� � - .% � � �% ���$ ����� �?�@ - ��� ���?�@%

������ ��%

K

3������ �� ������ �� �"�� �������� �"� �� �����"#� ���� ���� � � �����* ���� �� � � �� �� ��� ������������ � ��0

� �� �����#P���DB ��$ J

� � #��� � - .% � � ������ �����% ���$ ������?@ ����� �?�@%

������?@ ����� �%

����� � - T]&&%

K

�� � � /�� �

3� �2�������" �� �"� ����� �� )� � )� ��� ��� ���� �� ��� ���� �� �� �����" � ����� �� �� ��������� ���� � ������ � )� ���������� 3�������� � ���� �"��� O�������" ��� ������ ������ ��P�&��� ��� � �� � ��"� �2���� �������� � �� ���� ��� ����� � � �����" ��������� ����������

$� �� �2���� )� ������� � �� �����" ���������� .� � ��� � �� �������� �� ������ )� ����������� ��� ������ � ��� � ��� ��� )���0

� �� �&���#P���DB ���= ��� � ��� �$ J

�� #� -- .$ J

������ �?������� ���@?������� ���@ - .%

K ���� J

�&���#���= ��1$%

��� � - 1 �� #��1$% �� A���

���������� ��� ����� ��������� �� ����6�� ��K

K

3��� �� �� �"� ��� �� O������ �� ������ ������ ��P :���������� �� �� ����' �;0

P���D ���� - �������D#���= .= .= �$%

���������# ����= >$%

P���D ������ - �������D#���= .= �= �$%

� ��#������ = ����$% ���#������ = 6$%

������ - �������D#���= �= .= �$%

� ��#������ = ����$% ���#������ = ,$%

������ - �������D#���= �= �= �$%

� ��#������ = ����$% ���#������ = 1$%

$��� ������ � �� �����" ��������� �� ��� ����*�� �� )�� ����*��� � ������ � )� :�������; ����� ������� � ������� ���� ������ � )�0

�� ������� �

Page 40: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

� �� �&���#P���DB ���= ��� � ��� �$ J

������ �?������� ���@?������� ���@ - .%

��� � - 1%

��� � - .%

����� #� � �$ J

���������� ��� ����� ��������� �� ����6�� ��� ��- 1%

���%

K

K

.� ��� �� �� �� ���� ������

6 � �� ���� ��� �� ��� � � ��- ���" � ����� ��� ��� ���� �� ���������� ���������� �� �������������� ���� D���� ��"� �� � ��� ������� ��� ��� �� ����� � � ������ �� �"# ������ �� ��- ���" �

� $��� �������� ��� ������� ����� ������ ������� �� � �� � �� ������� � �� ������ � �������� �� ���� ���� ������� � ��� �� ����� �� � �� �� �� � ���� ������� � �"� �� �������< � ��� � ������� ����" ���� ��� � ������"#� � �� �� � � ����� � ��*��� ��� ��� �� �������� �� ���

� &����� ��*���� ��� ������� ����� � �� � ����� ������ �� �� �� ���� �� �� ������ � ��*������� ���� �� ���� ������ �� �����"� ����� � ���� - �

� ��- ������ ������� ������ ��� +( �� ������ � ��*���� ��� ���� �� ���� ������ �� �� ��������� ��� $��� ��������� �� ��������� ��� �� ��"� ��������, �� ����� � � �� �������� ���"� ��� �����������$��� ����� ������ ��� ���� �� �� ����� �� � ��� �6�

������� ������ P���� J

��� ����� %

P���� ��������%

K P����%

������� P���� 4��O � ����%

< � ����� ���"#� �� ��"� "� ����� �� �� ��������0

4��O � ���� ���Y��#$ J

4��O � ���� ������� - ��� P����%

������� ������� - �1%

������� ���������� - T]&&%

������ ������� %

K

$��� ������� ��� � � ����� �� ���"#� ������"� ������� �� ����� � ������ �� � �� �������� � ���������� �� T]&&�

� � ��Y��#4��O � ���� � ��� ���$ J

������ ������������� -- T]&&%

K

$��� ������� �� � ����� � ���"� � �� ������ �� �������� ���� � � ���� �� ������ ����� ����� ����� �� ������ :�� �2����;, �� �2���� ��� ����� � �������� �� ����� ���� ������ �� - �� �� ���� � � ���� ����

��� ����� � .� ������� ��������

Page 41: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

� � ���#��� � ��� �= 4��O � ���� � ��� ���$ J

P���� ���� - �������������%

����� #���� A- T]&& BB ����������� � �$ J

���� - ��������������%

K

������ #���� A- T]&& BB ����������� -- �$%

K

3� � �����" �� ������� � �� ����� ��"� � ������� �������, �� ������� ��� ���� ��� ����� � � ��������� ���� � ������ ���� ���� �� ��� ����� � � � ����0

� �� �������#��� � ��� �= 4��O � ����B ���$ J

P���� ���� - �������������%

P���� ����� � - ���%

����� #���� A- T]&& BB ����������� � �$ J

����� � - ����%

���� - ��������������%

K

�C6���� ��K

�� �� �� �' ���� �� ����� � �� ��� �� � ������� "� ����� �� �� ������ �� � �� �����0

�� #���� -- T]&& GG ����������� � �$ J

P���� �0 - ��� P����%

�0������� - �%

�0���������� - ����%

����� ����������� - �0%

K

�� ��������� � ���� ������ �� ����� �� �������"� �������� � �� ����� �� � �� -���0

�����B ���� ���# �����B ��= 4��O � ���� � ��� ���$ J

P���� ���� - �������������%

�� �� '?'%

����� #���� A- T]&&$ J

�� �� ����������� �� ' '%

���� - ��������������%

K

�� �� '@'%

������ ��%

K

$��� ���� �� ����� �� � -���� ����� �� ����� �� � �����*��� �� ��������� � ��������

������B ���� ���#������B ��= 4��O � ����B ���$ J

��� - ���Y��#$%

����� #A���� �#$$ J

��� �%

�� �� �%

�������#�= ���$%

K

������ ��%

K

�� ������� ���

Page 42: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

. ������ ������ � ��������� � ���� ������� �� ������� ��� � ���� ��� �� ������� �� ��� ����������� ������� �"����� :�������� 4�4;�

0 ����� �� ������ I�� �� ���J 3�� ����� ���� �������� � � � +( � ���"����� ��� � ������ ����� �� ������� � �� +(

4��O � ���� ������T����#4��O � ���� � ��� ���$ J

4��O � ���� ������� - ���Y��#$%

����� ���� � �� �� 4��O � ���� ���� J

����� ���� � $ � �� �� 4��O � ���� ������ #A���#���= ���$$ J

�������#���= ������� $%

K

K

K

������ ������� %

K

� ���� ������� ��� ��� +( �� ������ ������ ���� �� ������"��� ��� ������� � �� ����������� ����� �� � ����� �"������ ��0

4��O � ���� ������T����#4��O � ���� � ��� ���$ J

4��O � ���� ������� - ���Y��#$%

� � #P���� �0[ - �������������% �0[ A- T]&&% �0[ - �0[����������$ J

� �#P���� �0U - �0[����������% �0U A- T]&&% �0U - �0U����������$ J

��� � - �0[������� %

��� � - �0U������� %

�� #A���#���=���$$ J

�������#���=������� $%

K

K

K

������ ������� %

K

0 ����� �� ������ I ������J $��� �������� � � +( ����������� ��� ������� ��� �� ����� �' ����� ��� �' �������� )�������� ��� �� "���� �� ������� ��� �� ����� �' ���� � � � +( ���"� ������ � ���� �� - ���

� �� � ������#4��O � ����B ���$ J

4��O � ���� �����P�����%

� J

�����P����� - ������T����#���$%

�����T����#���= �����P�����$%

K ����� #A��Y��#�����P�����$$%

K

D���� �"� ������� �� ��������� � �����T����� < � ������� ����" �� ����� � ������"#� � ������� �� ����� �� ��� ������� ����� � � ������ ���� ������ � �� �����0

�� ����� � .� ������� ��������

Page 43: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

� �� �����T����#4��O � ����B ���= 4��O � ���� � ��� ����$ J

P���� �0T - ��������������%

����� #�0T A- T]&&$ J

�������#�0T������� = ���$%

�0T - �0T����������%

K

K

$�� �������� ��� ���� ��������� � �� � �-��� �� ����� ��� ���� � ������ � ����� � � � �+( ������ ���������� $���� �������� �� �� �� ��� ��� +( ���"� ������� ����� �� ��������� ���� ���� �� ���� �� ���� ������ ��� �����" � +����*����� � ��������� � ��� ��*��� ������� �� �� �� ����� ���� �� � ��� ������� ������ +����� �� ����� � �� ����� �� ��� ������� ����� ������ ������"� �� � �� �� ����0 �04 � �0T ������������ ��� ��� �� ����*�� � ��� � �� �� � ��� �� �� ������ ��� ��� ��� ������-�� �� ����� �� ��*���0

� 3� � ��������" �� �� ����� ���� �� � ��� ������� ����� �� ���"#��� 3� �"�2��� ������ �� ��� ������ ����� �� �� � ��� �� ���� ������ �� �� ����� ���� �� � ���� � ������� ������"� � ��� �� - �� �� �� ��� ��� ������ �� ����� �� ������� ����� :�0T;�

� �� �����T����#4��O � ����B ���= 4��O � ���� � ��� ����$ J

P���� �04 - �������������%

P���� ��4 - ���%

P���� �0T - ��������������%

����� #�0T A- T]&&$ J

�� #�04������� � �0T������� $ J

��4 - �04%

�04 - �04����������%

K ���� J�� �04������� � �0T������� (�� &� �� �� ����������� ����� ��� & ���� �� ����"�

P���� �0 - ��� P����%

�0������� - �0T������� %

�0���������� - �04%

��4���������� - �0%

��4 - �0%

�0T - �0T����������%

K

K

K

.� �� ������ � ���� �������

3� ���������" � ����� ��� ���� �� ����� �2������ ����� �� �� ������ �� �����"���0

������ �� ����6�� ��� ��/� & ������ �� ���� ���������� #A��� ������� ��� �������� %����$ J

�1������/�� ��� ������ ��� ���� ��������K

$��������� ����� �� ���� ��� ��������� � ��� ���� �� �� ���������� �� �������� � �� ������������ ������ ��� ���0

�� ������� ���

Page 44: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

��� ���#$ J

& �� � �� - � ���& ��[�����#$%

����� #A��W����� �:���#� ��$$ J

� �� �� � �� �� ����%

�� ���D� #� ��$%

K

� �� �� ') �������* � ����� ' �� � �� �� ����%

K

? ����� ��"# �� �������� �� ������ � � ������� ����" ���� �� � �� �� � � �� � ���������� ������������� ��������� D��� �� ������0

� � � ��� �� ������

3� � ������" �������� ��� ��� �� � � �� � ����� � �� ����' � �� �� ������ �� ��� �� ������� � � �"� ��� � � ��� �� ���� �� ��� ������� �� ������ �� �������� � � ��� ������:���������� ��; �� ���� � �" � $� ��� ������ �� ��� � ����� � � "���� �� � � �� ���� ���� ���� � �������� � ��� ��������� ����� �*��� ���

� ������ � � � ���������� �������� ���� �� ��� �� � � �� �� � � ����� �� � ����0

������� ������ P �� � J

��� ���%

P �� � ��%

K P �� �%

������� P �� � & ��%

���"��� ���� � � ���� �������� ������� � �� ��� � ������ � ��������� < � ����� ���"#��� ��"� ������� � ����� � :�� ��������; � �� �� � � ����� � ��� ����� �������� � �� �����:� �6 �� � ���� ������� ���� ��� - ;0

& �� � ��Y�� #$ J

& �� ���� - ��� P �� �%

�������� - T]&&%

��������� - �1%

������ ����%

K

� ����� ��- �� � � � ���������� �� "����� �� ���� ������ � ��������� � ���� ������� �� ������ �������� $��� ��� ������ �����*�� � ������� ���� � �� �� :� ����� � �� ��������;� $���� ����� ���� ��� *�� � �� ������� � ��� ��� ����� �� ���� � :�� ��� ���� ������"#��� �� ����������;������� ���� � � �������� ��2����� ���� ��� ���� ��� � ������� � ������� �� � ������0

� �� ������#& ��B � ��$ J

P �� � ���� - � ��%

����� #���� A- T]&&$ J

P �� � �0 - ����%

���� - ��������%

������ �0%

K

� �� - T]&&%

K

. ����� ������ �' ���� �� �"# ��

��� ����� � .� ������� ��������

Page 45: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

������#� ��$%

�� - �� ��� ��� �� � �� ����� ��� � � �� �� ��� ��������

� � ��� � ��� � � ����

< � ���� �� ���������� �� �������" � ����� � ����� � ����� �� ����' ��� ��* � ���� �������� ��������� � � � �� � ������ � ��"# �� ����� � �����0

& �� � ���& ��[�����#$ J

��� � - ������<��� #$%

������ � ���& ��[����#�$%

K

)����� �� ����� �� �*�� �� ������" ��� ����' ��� ��*� ��"# �� �� ������ � ����� :� �"������ ���������� @�6@;� ��� ����� �� �� �� ������ � ��� �� �� ����0

6� ������ �� ����' ��� ��*�

!� � ���� ��� � "���� ���� ����� :� W 6VAV � � �V# ���� ���"� # � 6;� ����*��� �� �������� "���� # �������� � ���� ������ � W ����

� � &�- ����� � � � ��� �� �0Z ��� � ��- ��� ���� �"�2�� �� ������ ��� ���"� � � ������� �� � �" � 8��� �� �� �� ������ ���� ������ ������ �� �� ����� �� �� �, � ���������� �� ���� ������� ��� �0Z:�0ZV6; � [T< PNR�

��� � ��� �0Z - �HI ��� �$������%��� ������<��� #$ J

��� � - �� #�0Z$%

������ #� #��1$$�,%

K

A� 5���� �� ����� �� � � ���

���� ������ ����� �������� � ��� �� ������ ��� ������ $����� � �� �� ����� ���"#�� � � ����������� ����� � �� �� ��� � ���� � �" � � "���� �� ������ �������� � ��� 6 � ��� ��� ����� �"� �� ���������

& �� � ���& ��[�����#��� � ��� � ��$ J

& �� ���� - � ��Y�� #$%

��� "���� - � ��%

� J

��� � �� � - �� #"����$%

�C6���� � �� � � �� �����"���� - "���� � � �� �%

K �����#"�����.$%

������ ����%

K

D��� � �' ���� �� ���� ����� �� �� ����� �� - �� �� �� �����, ���� ��� ��������� ������� ��"����� ����� � �� �� ������ < � ������� �����" ���"#� � ������ � ���� � ��������� � ������������ ��� ����� �� ��� �� �� ������ �� � �-��� �� ����� ��� ��� ��������� � �����"#�������� ��� �� ������ ��� � ��� �"�� �������� ����� � ������� � � �������� ����� ��� � ���� ������ ��� �� �� "����� � �� ���� �� �� ����� � ��"# ������ � ������ �"����� �� ����"����� ����� . ������ ������ � �� �������*�� ����� �� ���� ��� ��� �� �� ��� �� $������ � �������� � ��������� � �����P �� � ��� �' ��� � ����� � ���� � ���0

�� ������� ���

Page 46: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

� �� �����P �� �#P �� � � ��� ����� = ��� � ��� �$ J

P �� � �0 - ��� P �� �%

�0����� - �%

�0���� - T]&&%

����� ���� - �0%

K

. ������ ������ �������*�� ����� ���� ��� ��� �� �� "����� ����� � �� �� ������ �"# ������C6���� � �� ����� ����� �� �����0�����P �� �#����� = � �� �$%

����� - ����� ����%

$� "����� ������ ������ � �� �������� �� �������� ����� �� � �� ��� � P �� � � ������� � ���� � ����� � ��� �� � ���� � �� ������ $���� ��� ������ ��� � ������ � ���������� ��"����� � �� � � ����� ���"#� �� ��������� �� �� ��������� �"# � ��� ��� � �������� � ��������� ������ �� �"# ��

P �� � ����� - ����%

�� ��������� � ���� ������ �� ��� � ����� ��������� �� � � ������� �� �� �����0

�����B ���� ���# �����B ��= & �� � ���B � ��$ J

P �� � �0 - � ������%

�� �� '?'%

����� #�0 A- T]&&$ J

�� �� �0����� �� ' '%

�0 - �0����%

K

�� �� '@'%

������ ��%

K

� � ������ 3�� �� ��� ��3

$��� �������'�� �� ��'� �������� �� ����� �� � � ��� ���� � �" �� ������� � � ������ ����"���� ��� �� ����� � G ������ ���"� ����� ��� �� �� ������ �� ������� ������ � � ���� ��������� ��"� ��� ������ ��� ����� �� ����� �� - ��� �' ���� � � ���� ����� � ��� "���� �� �������

� �� �� ���D�#& ��B � ��$ J

P �� � ���� - � ������%

��� ���(������ � - .%

����� #���� A- T]&&$ J

�����������%

���(������ ���%

�� #��������� -- .$ J

������� �����K

�C���/�� �����K

�C6���� ���(������ ��K

��� ����� � .� ������� ��������

Page 47: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

!� ����� ������� ������� �������� ����0

� ������� ���������� �� ����� � ������ :� ��� �� � �� �� � G;� $��� �����*�� ���� ����� �"������ �� ���������� � �������� ��� � ���� ������ ��� ����� ��� �� �� ����� � ����� � ���� � �� ������ �� ������������ ����� �� �"# ����� ������� ����� ����� �� �����0����� ����� - ��������%

������ ����%

� �C���/�� ������ ��� ����� ���� ��� *�� ���� ������"#� � ���� ���� - �������� � $�� �������� �������0 �� � ����� � �� � ���� �� �� #��������� -- .$ J���K � ������ ����0 �� ��� � �� � ������ ��� �� ����� � �� ��� ��� ���� ����� ���� ����� ��� �� ����� �� ��� ����� �� �� ���� ��� ����� ����� ��� �� �� � ���� � ��� ��� ������ ����� ������ �� � ����� $� �� �� �� ��� ����� ����� �� � �������" �C���/�� ����� �������� ��� "���� ����� ����� ������ $� �' ������� �� ��� ��� ����� � ��� �� �� � � ������ �����

�� ��� ����� �� ����� �� ������ ���� ���� � ��������, ����� ��� ���������� ���"� ������� �����"� ���� ����� ��

3� �� ��� �"�� �"���� �� �����*�� ��� �� ���������� �� ����" �� �C���/�� ����� � �� � ���� ��� ������ ����� � "���� ��"#0

�� #��������� -- .$ J

����� ����� - ��������%

������ ����%

���� - ����� �����%

K ���� J

����� � - ����%

���� - ��������%

K

� �C6���� ���(������ ��$��� �����*�� ���� ����" ����� ������� ��� ��� � ������ ��� ������ ����� � ��� �� �� "���������� � �� �� ������ �"# ����� ���� ����" ����� �� �����0

�����P �� �#����� �=���(������ �$%

$��� ������ �� ��������� � �� ���D� ������ �������� � ��- �� ���������� �� �� �������� ����� ��+����� � ��� ��* ��� ������ �����*� � ������ � ��������� �� � � ����� �� ������ �� �� ��������"� ��������� �� �� ��������� �"# ����� � ��� ��� ����� �������� � ������� �� ������ �� �"# ��0

P �� � ����� � - � ��%

� � ,� ��� �� 2�-

? �� �"� ����� �� �� ��" ��� �������� �� �� �������" � �� ��� ��� ������ �� - �� � ���� �� ��" �����"� ��������� �� �� � �� � ����� � � � ����� ��� ���� �� �� �� �� ���� 6� A� @� � �

8���"� ��� ������ �� ������ ����� � ��� �� ������ �� � �� �����" � �� ������ � �� �2������� ����� � �������� � � � �������#� ���� 0

�� ������� ���

Page 48: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

� � ��W����� �:���#& �� � ��� � ��$ J

��� � - 1%

P �� � �0 - � ������%

�����#�0 A- T]&& BB �0����� -- �$ J

�0-�0����%

���%

K

������ �0 -- T]&&%

K

. ��������� ������� ����� ������

�� ��� �� ���� � �� ��� ���� � ������� ��� �� �������� �"����� �� � � �����* �������� �� ���� ��" ����������� �� ������ �� � � �����* �� "������ ��� ����' � ������������� � ����� �� �������" � ��� �� � ���"� ������� ������� � � ���� 3� ��- ���" �"�� �� ����� �� �� � ������� ����� ���� � �� �� ������� �� ��� �"�� �� ����' ��� �������0

������� ������ )���� P�� J

��� � ������ %

��� ���� %

K )���� P�� %

$��� ���� �� ���� ��� �������� �"�� � ���� ��� �� ��� ��� �� ���� ������� ����� ��- �� � ������������ �� ����� � ���-����" �� ����� � ��� ���� ��������"� �� ���� ������ �� ��� ! ���� �

��� �������0

������� ������ ! ���� � J

��� ���= � ����%

K ! ���� �%

!� ��� ������� ��� �� �����* ��� ������� �� �� ������� ��� �� "������ ������ �����*�� � ���������� � ��� ������ �� ������ �� � ������� �"����0

� �� ������#)���� P�� B ����� $ J

� � #��� ��� - .% ��� � ����� ����� % �����$ J

������ ?@ ����� �� ������ ?���@%

K

������ ?@ ����� �� ������ %

����� �� ������ - T]&&%

K

������ � ������� +����*����� � � �� ��" ��� �������� �� � ������� ��P�� � $��������*�� �� ��������" �� ������� ����� ��� -���� ��� ���� �� � ��� ���� �����

< � �����" �� ����� � ������"#� � ������� �� �����* �� -��� � ����� ���� � � �� ������ ������� �������* �� ���� �� � ����� ���� � � �� ����� �� - ���� ��� ������� ��� ���� ���� � ��������� 9����"� ����� �� ��*�� �"������ � ������� � � "� ��� ��* �� �����* �����*� � ��� ����� ���������� 3� ����� ����� � ������ � � ���� �� ���� -��� ���� � � ���� ��� +������� ��� �� �����* � � ����������� � ����� ���� �� � ���� �� �� -��� �� ���� � � �� �� ��� ���� ���� � ��� ��� ����� �*��, ��"����� �� ������� ���"� �"���� �� ��� �� � ������ � �������� ! ���� �� �� ��" ��P�� ������� �����0

�� ����� � .� ������� ��������

Page 49: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

� � ��P�� #)���� P�� � ���B ����� $ J

) ��� ��� � ��� ��� - ������ ���� ���� ��� �����������%! ���� � � �%

� � #� ����� - .% � ����� � ����� ����� % � �������$ J

� � #� ��� ���� - .% � ��� ���� � ����� ����� % � ��� ������$ J

�)���������� �� �������� �� �� %����)���������� �� �������� �� �� ���������)���������� �� �������� �� �� ������� ����� ���)���������� �� �������� �� �� ������� / ������

K

K

������ ����� � ����� ��� ���������� ��� �������%K

$��� ���� ��- �� �� �"��� �� ������� ����� �� ��- ���" �� ���� ��� ���� � �����*�� ���� ��� ������� Q��*"� �� ���� �"�� �� ����� �� �����*�� � ����� �� ����' A� VA � �� � �� �� ����' ���������� ��� �� ���"� � ���*� �, ��� � �������� G � � � � ������ ��"� �� � ������ �� ��� -���� ��������� ��� � �� �� ��� ���� �� � ��� �� "������� ����� �� ������ ��"� �� � ���� �� ��� ���� ����0

G � � � � �� � ���� �� �� -�� �� � � � A� �� � ���� �� �� ���� � ���� W A� �� � ���� �� �� ���� �� �*�������

� W A� V 6 �� � ���� �� �� ���� �� ������

�"# �� ��- ���" �� ���� ���� �� � ������ ���"� � ������ ��� �������� ��� �� ����' ���"����-��� �������� ������ �����"� � � ���� ��� ����' 0

������� ������ ) ��� ��� J

��� � ������ %

��� ����� ) ��� ���%

K ) ��� ���%

3� �� ��" ��� ��- � � ������� �� �� � ������ ���� ����� � �� ���� G0

) ��� ��� ������) ��� ���#)���� P�� � ���B ����� $ J

) ��� ��� ������� %

������� ������ ) ��� ��� - , ����� ����� �,%

������� �� ������ - ��� ���?������� ������ ) ��� ���@%

� � #��� � - .% � � ������� ������ ) ��� ���% ���$ J

������� �� ������ ?�@ - .%

K

������ ������� %

K

$���� ��� �� ����� �� �� � ������ �� ���"� ���� � �� ���� �� "������ �� ������� ������ �� ��������" �� �� ������ ������ �� �� �����0

� �� ������#) ��� ��� B � ��� ���$ J

������ ?@ � ��� ����� ������ %

� ��� ����� ������ - T]&&%

K

���"� ������� � ���� � ���� ��������� � � ��� �� ��� � �� �� �� ��" ��P�� � �� � ��� ������

�� ������� ��

Page 50: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

������� �� ������ �� �� �� ��" � ����� �� ��� ������ ��� � ������� ��0

� � ��P�� - ����� � ����� ��� ���������� ��� �������%������#� ��� ���$%

������ ��P�� %

3� ��������� �� ��� � ����� �� �� � ������ � ��� �������� � ��� �"#� 3� ��� � ����� �� ��� ���� �� � � -�� � � ���� � �������� �� ���� �' ���� �� ���� �� �� �����" ������ �� � ������ �� -�� ���� �� 3� ��� � ����� �� �� � ������ �� ��� ���� ���� ���� ������� ����"�� ���� �����" ������ ���"� � � � ���� ��� � �� ����" �� �� �� ��������� � ��� � ����� �� �� ������ �� ���� �� ������0

� � ���(�L� ��L�����#! ���� � � ���B � ���� �=

)���� P�� � ���B ����� $ J

������ #� ���� ������� ���� ��� ����$ -- ����� ����� �1%

K

� �� ����������) ��� �L� ��L�����#! ���� � � ���B � ���� �=

) ��� ���B � ��� ���=

)���� P�� � ���B ����� $ J

�� #���(�L� ��L�����#� ���� �=����� $$ J

� ��� ����� ������ ?, ����� ����� �1@ �- �� �(�#� ���� �=����� $%

K

K

3� �� ��" ��� �������� �� ��� �� � ������ � ������� ���� �������� ���� � � ���� � ������ ������ �� � �� � �������0

� � � �< � �) ��� ���[����#) ��� ��� � ���B � ��� ���$ J

��� �� � - � ��� ����� ������ ?.@%

� � #��� � - 1% � � � ��� ��������� ) ��� ���% ���$ J

�� #� ��� ����� ������ ?�@ A- �� �$ ������ ����%

K

������ ����%

K

� �� �� ��" ����������) ��� �L� ��L����� �� ��� �� �� ��" �� �(�� "���� �� ������� ������ �� ��������� � � ���(� ��� �� ��- � �"�� ����� ���

�������� ���� �� �� ��� ���� �� �"��� ������� � ��� �� � ��� ���� ����� � � ������ "����� �� �� �� �� �����* ������ � � ����" � �� ���� ����������� �� ���� ��������� $��� �����*����� ����� ����� �� � � �����* ��� �� �� �� �� �� ���� ���"� �� ������� �"���� ��� ������������ ��� D"���� -���� 4�C�

����*��� �� �� ���� �� �"�� � �� ������ � ������ �� "����� ��� 6 �� C� �� "� �� "������� ��� �� �� ��� ������� �� �� @ � �� -�� G � ���� � B� �� "���� A ���"� � �� -�� �6 � ���� � @��� � � �� -�� �A � ���� � A� �� B � �� -�� 6 � ���� � C �� �� "������ �� C � �� -�� A � ���� � 4��� � -���� � ��� �������� � ��� ��� ��� ����� ���� "���� �������� � ������ ��0

������ � ��� W B

? ���� � � ���� ���� ��� ������ ��� ���� ����� �������� ���0

������ � ��� W B� A� G��A��B������������ ��� �"# ����� ��� ��-��� ���� ���� �� �� �� ������ ��� ������ � ����

��� ����� � .� ������� ��������

Page 51: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

6

4 A

66 E @

64 6A F B

A6 6E 6@ 7 C

AA 6F 6B 6G

A@ 67 6C

AB AG

6C

������ � ��� W B

������ � ��� W A

������ � ��� W G

������ � ��� W �A������ � ��� W �B

5����� 4�C0 %"��� ���� �������� �"����� �� ��� �����

� �� ���� �� ����� � ���� ����� ��� � � �� ����' ��� ������� �"����� � ���� ���� ���� ��"� � ����� ��� 3� ������� ���� �� ����-���"� ��� ������ � ��� W � � 6, �� ������ ����� � ����� ���� �� �����"� � �� -�� ���A � �� ���� � �� ��"� ���� �� �� �"����� ��� ��� ��-�� �� ���� ���$��� �������� �� ������ �� ���� �� ���"� ������� ������ A � ���� �������� �� -�� ��� ������ ����� � ����� ���� �� ���"� ������� ����� 6 � �� -�� ��� ������ ����� � �� �� ���� �� � ������ �"# ����������*�� �� �� ��" ��� �������� � ������� �"���� �� ����' �����0

)���� P�� � �������P�� [���#��� � ��� ���� $ J

)���� P�� ������� - ��������� ����"� �� ����6�� ���� �%��� ������:�� - �#���� �,$%

��� �� �� - ���� �1%

��� �� � - 1%

� � #��� � - .% � � ���� % ���$ J

� � #��� � - .% � � ���� % ���$ J

! ���� � � ���� �%

� ���� ����� - ������:����%

� ���� ��� ���� - �� ���� ���� �����%

�;���� ����� �� �� � ���� � ��� ����������� ���%

K

������:����%

�� �� - �� ���,%

K

������ ������� %

K

3� � �������" �� � ������� ���"# �� �������� �"������ �� � �� ������ � ������ � ������� ���� -��� � �� ��� ���� ��� �� � � ���� � ����� � ���� ������� ��� �������0

�� ������� ���

Page 52: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

)���� P�� � �������Y�� #��� � ��� ���� $ J

)���� P�� ������� %

������� ����� - ���� %

������� �� ������ - ��� ��� ?���� @%

� � #��� � - .% � � ���� % ���$ J

������� �� ������ ?�@ - ��� ���?���� @%

� � #��� � - .% � � ���� % ���$ J

������� �� ������ ?�@?�@ - .%

K

K

������ ������� %

K

$��� �������� �� ��������� � ����� ��- �� �� �"��� ���� � �� � ���� � � � ������� ��� ��������� ��� ���� ���"#� ��� ���� � ������� �� ���� ��" ���� �� �������� ����� � � �� ����" � ����������� ������ ��� ���"� �� �� ��� ������ $�� �� �� ���� � �� �"�� ����� ���� ��� �������� �� �� ���0 �� �� �����" � ��� ������� � �� �� ���� ���"� �� �� ��� �������� �� � � ������ � "��, � ��� � ����� ����� �� ��������" ��������0

� �� � ���(�#��� � ��� �� �= ! ���� � � ���B � �= )���� P�� B ����� $ J

! ���� � � �N�0 - � �%

�� #�� �N�0 �� ����� ������ ��� ���������$ J

� �N�0 - �������� � �� �� ��#� ����������� � �N�0 ������ �� ����� �K

����� �� ������ ?� �N�0����@?� �N�0�� ����@ - �� �%

K

3� ��������" �� ������0 �� � ������� ���"� �� �� �� ����� �� -�� ���"� �� ������ �� ���*� �� ���� � ���"� � �� ������ � �� �'����� �� � ��� �� ���� ��� �������� �� � �� � ���������� ����� �� �� �� �� ����� -�� ���� �0

! ���� � ������! ���� �#! ���� � � ���B � �= )���� P�� � ���B ����� $ J

! ���� � ������� - � �%

�� #������� ���� � .$ J

������� ���� - ������� ���� � ����� ����� %

K ���� �� #������� ���� �- ����� ����� $ J

������� ���� - ������� ���� � ����� ����� %

K ���� �� #������� �� ���� � .$ J

������� �� ���� - ������� �� ���� � ����� ����� %

K ���� �� #������� �� ���� �- ����� ����� $ J

������� �� ���� - ������� �� ���� � ����� ����� %

K

������ ������� %

K

3� �� ��" ���� ��������� �� � � ������� ��� �����" ���"� ���� ��� ������� �� ����� �� ������0

� � ���L���� #! ���� � � ���B � �= )���� P�� � ���B ����� $ J

������ #. �- � ����� BB � ����� � ����� ����� $ BB

#. �- � ��� ���� BB � ��� ���� � ����� ����� $%

K

�� ����� � .� ������� ��������

Page 53: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

�������� �� ��� ����� �� �� ����� �� �����"����� ������ ��� ��� � ��� �� � ������� ����� �������� �� "����� ��������"#��� �������� �� ��� �� ���� �� �� �������� �"������ $��� ���� �������� � � � ��� �� ����� �� �� ��� � �� ��� ��� ��-��� ��� ����� �� ��������0

��� � ��� �� �P��� - 29%

� � ���� ���� ������ � � ������� ����� � � �� �� ���� � ��� �����" � � ���� ������� �� � �������� ���"� ������� ����� � ��� �� ���"� ��� ���� � �� �����" 0

� �� ����! ���� �#! ���� � � ���B � ���� �= )���� P�� B ����� $ J

����� �� ������ ?� ���� �����@?� ���� ��� ����@ - �� �P��� %

K

� � ��! ���� �P���#! ���� � � ���B � ���� �= )���� P�� � ���B ����� $ J

������ ����� �� ������ ?� ���� �����@?� ���� ��� ����@ -- �� �P��� %

K

9� �� � � ��� �� ����� �� �� �� ��� �� � �������" ��� ������� �"���� �� ����� ������� � ��0������ �� ������ �� ���� "��� �� ����� �� ����� , ��� ��0

)���� P�� � �������P�� P������ >#��� � ��� ���� $ J

)���� P�� ������� %

������� - � �������Y�� #���� $%

����)�����#������� $%

�������)���� #������� $%

������ ������� %

K

9�� � �� �� ����� ��� � �� -���� 4�4� ���� �����*�� �� ������ � ��� � ����� ���� ��� ��������� ����0 ������� �*������� :��;� ������� ������ :�&;� � ����� �*������� :��; � � ����� ������ :�&;�&� ���� � � �� ���� ���� ���� �� �� ��� �� ��B ��� � � �� ����' ��� �������� � � ��� ��

!� � � � � � !� �

!� � � � � � !� �

!� � � � � � !� �

!� � � � � � !� �

!� � � � � � !� �

� !� � � � !� � �

� � !� � !� � � �

� � � !� � � � !�

� �� � � � �� � �

�� � � � �� � �� �

� � � �� � � � ��

� � �� � �� � � �

� � �� � �� � � �

� � �� � �� � � �

� � �� � �� � � �

� � �� � �� � � �

5����� 4�40 ! �������" ��� ������ �� ���� ����

�� ������� ���

Page 54: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

��������� � �� ������ �����"� ������ ���� ��� ���� ����0

� �� ����)�����#)���� P�� B ����� $ J

��� ���L� ���� - ����� ����� �>%

� � #��� �� �� - .% �� �� � ���L� ����% �� ����$ J

�7����� ��� ����������K

K

� ���� � � �� ��� ���� ���� �� �2������ �� ��A ����� ��� $���� ����� �� ���� ��� ���� ����� �� ��*, ���� ��� �������� ���� ��� ����� �� �� ���� ���� ��� ����*� � �� �� �2����� ���� *� � ���� �� �� ��0

! ���� � ��W��L��= ��W��[D"%

! ���� � ��[��L��= ��[��[D"%

�������� ������ � ��W��L��( ��W��[D"( ��[��L�� & ��[��[D"�� � #��� � - .% � � ����� ����� �,% ���$ J

�7����� ��W��L��( ��W��[D"( ��[��L�� & ��[��[D"��C���/�� ��W��L��( ��W��[D"( ��[��L�� & ��[��[D"�

K

3� ������ � ������� �� ���� � � �� ��� ���� ���� � �� ������ ���0

-�� ���� ���W��L�� G ���� � �� ��� 6��W��[D" G �� ��

��[��L�� ���� � 6 ���� � �� ��� 6��[��[D" ���� � 6 �� ��

�� ������ �� ���� ���� �� �� ��� �� ����0 �������� �� �� ���� ������ ���� � � �� ��� ����� ����W��L��� ��W��[D"� ��[��L�� � ��[��[D"�

!��� ���� �� �����*� � �� �2���� � �� ���� �� �� ��, �� ��� �� �� � ��� �� ��� ��� ��� ���� � �� �� ���� �� �������� �� ��� �� ���� ��� �������� �� �����" �� �� ���� �� �� � ��������� "������ ���� � ���� ��� � �� �� �� � � ���� �� �*������� ������ ������������ ��� �"#��� ��������� � �� ��D�L� ���� ����� �� �����0

� �� ��D�L� ����#! ���� �B ��W��L��= ! ���� �B ��W��[D"=

! ���� �B ��[��L��= ! ���� �B ��[��[D"=

��� � ��� ���� $ J

��W��L��������% ��W��[D"������%

��[��L��������% ��[��[D"������%

��W��L���� ������% ��[��L���� ������%

��W��[D"�� ������% ��[��[D"�� ������%

�� #��W��[D"�� ���� �- ���� �,$ ��W��[D"�� ���� - .%

�� #��[��[D"�� ���� �- ���� �,$ ��[��[D"�� ���� - .%

�� #��W��L���� ���� � ���� �,$ ��W��L���� ���� - ���� �1%

�� #��[��L���� ���� � ���� �,$ ��[��L���� ���� - ���� �1%

K

5���� �� "����� �� ��������� � ��� � � �� "����� � �� ������� �� ������� ���"� �� ���������� � ������� � �� � � ����� �� ������� ������� �� ������� �� �����0 � � �� ������ ����� � ����� ���� ������� $�� �� ���� ��*��� � �� �"�� � �� �����" �������� ���������� ��� � ��������� �� ��-��� ��� $��� ������� ��� �� �����" �������� � �� � � ����� �� �������� � � ��������

��� ����� � .� ������� ��������

Page 55: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

�� �� � ���� � ����� 6� ��� �� ���� � ����� �� � � ������ ��� ��� *��� �� ���� �������� � ����������� �������� �� ������� �� �� �� � �� ���� � ������� ����� � ���� ��� ����*� � ������� � � ��� �� ���� �� �� �������� �� � ��� � ������� � ��� �������� ��������� �� ���������� ��������� ����� ��� �� � ���� � �� ��������� ��2�������0 �� �P��� � �� �T P��� �3� ������� ��� �� ����� ��� ������ �������0 �����*� ����� � 6� �� �� � ����� �� � � ���� �������� �� ���� �� � � � ��� �������� ��������� 3� ���� �� ��� �� ����� ��� ���� � �������0 �����*������ � �� :� �� �� ����' ��� �������;� ����� ��� � ���� ��� � �� ���� �� � � � ��� �������� ��������0

� �� �������)���� #)���� P�� B ����� $ J

��� �� �P��� - 1%

��� �� �T P��� - ����� ����� ����� ����� %

! ���� � � �%

� � #� ����� - .% � ����� � ����� ����� % � �������$ J

� � #� ��� ���� - .% � ��� ���� � ����� ����� % � ��� ������$ J

�� #��! ���� �P���#� �= ����� $$ J

� ���(�#�� �P��� = � �= ����� $%

K ���� J

� ���(�#�� �T P��� = � �= ����� $%

K

�� �P��� ��%

�� �T P��� ��%

K

K

K

.� �� ���������� �� � ������� ������

6 � �� ���� +����*����� � � ������� ����" �� ��� ��� ������ � ������ �� "������ +������� ������ �� ��� ��� �� ������ � ��*���� �� ������ "���� ��� � ���������*��� �� ������ :� ��� ������; � �� �� ��-��� ��� ��� ��� ����� � ���� ��� !� �� ������� ��� ���� � ��� ����� �� �� ����� � ���������� ��� ��� ������ ��� ������� �� �� ��� ��� ���"� ��"#��� ����, ����"��� � ������ ������� ����" �2�����"� � ��� � ��-��� �� ��� � ������������ ��� �� G �� ������� ���"� ����� �� � � ����� ���"#��

$� � ������ ���� ���� ���������� ��� ������ �� �� ����� ����� � ������������" � �� ������ ���� ��� �� �� � ��� �� ������ �� �������� ��, ��� � �� ������" �� ���� ���� �� �� �� � ���� ��� �������� ���

$� "������ ��� ������ ��� ������� �� �� ��� ��� �� � �� �� ��������� �� ������ � � ����������� ��� ����� ��� ����� ���� ��� ����� � �� ����� �� � ���0 �� ���� ��� � �� �� �� �������� ���"��6� 3� �������� � ��������"� �����*�� ��� ������ �� �� ���� ��"� ��� ����� � ����� ���� � ��������� ���"#�� � ���� ������" � �"#� �� ��� �� � � � � 6 �� ������� ���"� ����� �� �� �����

��������

:G��6; :6� B; :�6� A; :�6� G;

�� ������� ���

Page 56: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

� � �� � ��� ����� ������� ���"� � ��� ��� ��� 3� ������*���" �� ���� ���� �� ����� �� �� �����0 ������� �� � ��� �� �����*� � ��*� � �������

������� ������ )���P � �� J

P � �� � � �� %

)���P � �� ��������%

K )���P � �� %

� �� ��� �� ��� �� �� ������� �� � �� �������� �� �� �����0

������� )���P � �� ! ��� �� %

< � �� �� ����� ��- �� �� � � �����0 � � ������" ��� ������� �� �� ��-��� �� � � � ��� ���������� �� �� ����0

������� ������ P � �� J

:���� � � ���������%

��� �� %

K P � �� %

�� ���� �� ��- ���" ��� ��� :���� �� �� � � ���� ��� ������ ��� �� �������� �� ��� �� ���� �������� $���� ��� ������ ��- �� � � � ���������� � ������ �� "������ � ��� � ��� � ���������� � ��� ������ �� ������ ������ �� � ��� ��� "���� �����"� ������� �� ����� �� � ��� ������ �� ������ � �� ������ ������ �� �� �����0

� �� ������#! ��� �� B � ��� �� $ J

)���P � �� ���� - � ��� �� %

����� #���� A- T]&&$ J

)���P � �� �0 - ����%

���� - ��������������%

������ �0%

K

K

4��� " ����� �� �� �� � 3�� ��������"#������ �� �� ������ �� "����� � !�� ������"#� � � �������� ����" � �� ��� ����� �� ��� ������ �� � ��� ��� �� ���������*��"#� � ��������� ��� �"# �� ������� �� ���� ��� � ���� ��������0

� �� ����#! ��� �� � ��� = ! ��� �� � ��� �= ! ��� �� B ������� $%

�� ������ ���� ��� �� ������� ����" ������ ���������" � 9�� �� ���� � ��� ������ �� � ������ ��� �2������ �� ����� ��� � ��� ������ �� � ��� � ����0 ����� � �� �� �� � ��� ������������� ��� $� ��� ������ �"�� � �� �� �� ������� ��� ��� ������ �� �� ���"����� ���� � ���� :�"������������ C�67;0

! ��� �� ���� ��#(���� � ���B ����� N= (���� � ���B ����� S$%

$����� ���� � ���� ������" � ��� ������� ��� ������ ��������� $�� ��� �"�� ���� �� ����������0 ���� �� ���"#� �������� �2����� �� �� "����0 �1 � �, � �6� HQ�"� ������� ��I :!� ��� ��� ���� �� ��J�2�" � � � ;

� ������� ���� �2�����" ������ � ������ � �� ���� ����"#���� �� ��� �� �������� �� ��������1 � �, :�� ��� ��������� �0W��; � � "���� �� �������� �6� HD�� �� �� �������I :8����� ���

��� ����� � .� ������� ��������

Page 57: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

����� � ��� �� ������� � � ;

���������� ��� ��� ����� � � ���������� �� "�����, �� ��� �� �0W�� � �� ������ ��� ���� � ��� ��������� 3� ������ �� "����� ��� �� ������ ������� ����� ��� � ��� �� �� � �������������������� �"# ��� �� �2�����" �1 � �, � �6 �� ����� ������� ��������� ��, �� ������� �������� ����0

! ��� �� �0W�� - �1 � �,%

! ��� �� ������� - �0W�� � �6%

������#�0W��$%

) ���� ��� ������� ������ � ���������" � �� ��� ������� �� ���� �����*�� ��� �� �� �� �� �������"#����

! �� ��� ���� ��� �� �������� �����*�� � � ������� ����" � !�� �� ��� ������ �� ��� � ��������� ��� ��� ��� ���� ����� �� ��� � ��� � � �� �� ��� � ��� �� �����0 � �� �������� �������� ���������" � �� �"�� ���#� � �� ���� ��� �� ���� ��� ��� ������ �"�� � �� �� �� ���� ����������� � �� ������� � �� ���� ��� �������� ����� �� ���� �����" �

�"# ����� �����*����� � ��������� � ���� �� ����� ��� � ����� � ������� ������"� ���� �� ������ �� :�� ��� ��� � �; �� ��� � � �� ��* �� �������� :�� ��� �� ������� � � ������� �� ��;0

� �� ����#! ��� �� � ��� = ! ��� �� � ��� �= ! ��� �� B ������� $ J

������� - �������� �����%�1������� & �( ��������� ������� �

K

8������ ��� ��� ������� ������"� � �� ���� ���� ��� ���� $��� ���� ��������� ���� �� ������2�������0 �0N � �0S� ��' ��� � � �� �� �������� �� �� ��� ��� ���� ��� � ��4� ��� �� ��� "����� � ����� ��� ��� �� ������� ��� ������ ������� ��

� ������� ��� ������� �� �� ��� �� �� :�� ������ � � ����� ���"#� � ����� �� "� ����� �� � ����������;� �� � ��� ��4 ��� ���"� � ��� � ��������� � ������ �� � �0N �� �0S ��� �� � ������� �� �� ������ � #���� �� ��� ������ � �� � ��� � �� ������� � �"#� ���"� ��� ��� *�� ��������� � � �� �"���� � :� ���; �� � �� $�� ���� � ��� *�� ������ ���� ����� �� � � �� ����� � ���� ���������� �� ��� �� �"� ���� ������0

)���P � �� �0N - ����������%

)���P � �� �0S - �����������%

)���P � �� ��4 - ������� %

����� #�0N A- T]&& BB �0S A- T]&&$ J

�C���/�� �� �������( ���������� ��� ������ �� �0N & �0S�K

�� #�0N A- T]&&$ ��4���������� - � ���&���P � �� �#�0N$%

�� #�0S A- T]&&$ ��4���������� - � ���&���P � �� �#�0S$%

�� ����� ��� ������ ����� ��� *� ������ � �� ����� �� ���� � ���0 �� �� ���� ��' ���� ���0N �� �� � ��� �� �� �0S� � �' ����� � �� ���� � ��� *��� �� �� ��� �0N� 3 ���� � �0S�� �� ���� !�� � ���� ����� � �������� �' ����� �� � �� ��� ���� ����� ���� � ����-��� ���� � ��� *��� � ���� � ���� �"# ����� �� �����"���

�C���/�� �� �������( ���������� ��� ������ �� �0N & �0S��� ��- � ��"#0

�� ������� ���

Page 58: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

�� #�0N��� � �� ��� ��0S��� � �� ��� $ J

�����P � �� #��4= �0N��� � �� $%

�0N - �0N����������%

K ���� �� #�0N��� � �� ��� ��0S��� � �� ��� $ J

�����P � �� #��4= �0S��� � �� $%

�0S - �0S����������%

K ���� J �� ��� ������ ��� �����������P � �� #��4= �0N��� � �� � �0S��� � �� $%

�0N - �0N����������%

�0S - �0S����������%

K

D��� � �� �������� �� ��� ���� $��� �' ���� �� � ��� ��� ����� � �0N �0S� ��������� � � ��� ��" ��� �������� � � ���� �� � � ����� �� � ��� ����� �� ������� ����" �"� �2��� ��������� ����� ����� �� ��� � � � ���� �� ���� ������ <������ � � �������� ��2����� �0& ���� ������� ������� �� � ������ $��� ����� �� ���� ����� �' ����� �� � ��� �� �� ����� �������� � �� ����� � ������� �� "���� � �� ��� �� "����� � �� ���� �� �� ���� ����� ��� ��������� ����� T���0

)���P � �� � ���&���P � �� �#)���P � �� � ��� ����P � �� �$ J

)���P � �� �0& - ����P � �� �%

)���P � �� ����� T���%

�;���� ����� ���� ����� T��������� #�0& A- T]&&$ J

�����P � �� #����� T���=�0&��� � �� $%

�0& - �0&����������%

K

��������� �� ����� ���� �� �� ���� ���������K

8� �������� �� ���� ��������� �� �� ���0 � ������ ������ ��� �� ��� � ���� � ����� � ���������� ����� T��� �� �� �� ���� ������ ������� � �� ��� � �� ������� ����� �� ������ $������ ��� �� ������ ��� � ������ � � �������� � ����� ��� ����� T��� ��� �� � ��� ��������0

! ��� �� ���� - �������� �����%)���P � �� ����� T��� - ����%

���"��� ��"# �������� �� ������� �� ��������� �� ����� �������� ����� ��� "���� �� �� � ������ ���� �� ��������� $� "������ ������ ����� �� �� �� ������ �� ���������

)���P � �� �0 - ��������������%

������ ����%

������ �0%

��� �� �� �����" �� � �������� ����� �� ����� � �������� � � � �� ��" ��� � ��������� ������� ��� � ��� �� ��� �� ������ � � ����� � �"� �� ��������0

! ��� �� � ��� �� )�� #$ J

! ��� �� � ��� �� - ��� )���P � �� %

� ��� �� ��� � �� ��� - �1%

� ��� �� ��� � �� �� ��������� - ����� �)�� %

� ��� �� ���������� - T]&&%

������ � ��� �� %

K

�� ����� � .� ������� ��������

Page 59: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

3� ������� ���"#� � ��� �� )�� #$� )��"������ ��� ������ ��� � � � � ��� �� �� ��� :���� �

������� ����� �)�� �

� ��� � � �� �����" �� � � �� � ������ �� �����P � �� #���$� �� ����� �� �' ���� � ������� �� � �� �� �� � �� ���� � ���� �� �� ��� � ��� ���� ������ 8�� ��� �� �� ������ �� � ������� � ��� � ��-��� �� G� ��� ����� ������ ���� �� �� ����0

� �� �����P � �� #)���P � �� B � � = P � �� � � �� $ J

�� #� � �� �� ��������� A- ����� �)�� $ J

)���P � �� ���� - ��� )���P � �� %

������� � �� - � � �� %

�������������� - T]&&%

� � ���������� - ����%

� � - ����%

K

K

? �����"� � �������� � � �� ��" ���� ����� � ���� "���� �"� �� ����� ����� ��� � ��� � �� ���� ����, � � ���� ����� � ����� �� ��-��� ���� � �� ���� �� �� ����0

P � �� ���� ��#P � �� � ���B = P � �� � ���B �$ J

P � �� ������� %

������� �� ��������� - �� ��������� � ��� ���������%

������� ��� - ��� %

������ ������� %

K

3� ����� �� �������� �"������ �� ��� � �� ����0 �"� �� ��� ������� �� � ��� ��� ���� ����� � � � ���� � �� ����� &����� �� �� ������ �� �������� � �"� ��� �� �� �� ��� ������ �� � ��� �� ������" �� ����� �� ��� �����"� �� ���� � ��� �� ���� ��2������ ��� ��� ����� �������� ����� � ��� �� ��� � �� �� �� ��" 0

� �� �����#! ��� �� � ��� = ! ��� �� � ��� �= ! ��� �� B ������� $ J

! ��� �� �0%

�����W�� ! ��� �� #�= �0$%

����#= �0= ������� $%

������#�0$%

K

�� ��������� � �����W�� ! ��� �� �������� � � ���� ��� ������ ��� �� � �� ���� �� $����� ��� �� ������� � � ���&���P � �� �� �� ���� ���"# �� ������� ����" �

#��� �� ��� �� �� �� �� � $��� �����*�� �� ������������" ������� �� �������� ������������� ����� ���� � �� ������� �������0

�: ;:�� V �� V � � �V �� �; W �: ;�� V �: ;�� V � � �V �: ;��

$� �� � �������� �� � ��� ��� ���� � ��� ��� �� ������������� �� ���� ���������� � ���� ������ � ������� � �� ���� � ������� �

�� ������� ��

Page 60: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

� �� ����������#! ��� �� � ��� = ! ��� �� � ��� �= ! ��� �� B ������� $ J

������� - � ��� �� )�� #$%

)���P � �� �0S - �����������%

����� #�0S A- T]&&$ J

�C������� �� ������� �� �������� ��� ������ �0S ��� �� ������� ��0S - �0S����������%

K

K

�� �� �� �C������� �� ������� ���� ���"#� ��� �����*�� � � � �������" �� "����0������� - ������� � �0S��� � �� %

$�� ����� � ������ ������" �� ������� ��� ��� ������ �� �� ��������� �� :���� ��� ���� ���; � ���� ������� � ������� �� ��������� � �������� � ��������� ��2������� :"��� �� �� � � �� �� ��;�

! ��� �� �01%

����������#= �0S��� � �� = �01$%

! ��� �� �0, - ������� %

����#�01= �0,= ������� $%

$�� � ���� ��� �� :� "���� �� �� �� ����; �� ��� ��� ����� �� ���� ��� ��� ��� �������� � ����� � �� �� � �� ���� � ������� � �� ����� ����� ������� �� ������0

������#�01$%

������#�0,$%

�� �� �� �����*�� ���� ������" � �������� � � �� ��" ���� ����������� � � �� �� � ��� ��� � �� �������� ���� ��� � ��� �� ���� $��� ���� �������� �� ��� �� � � �� �����2����� �0! � ���� �' ���� � � � ��� �� ��� �� �������� �� ����������� �� � �� �� � �������� ��������� � �� �� � �� �� ��� ��� �� �0!� $��� ���� �' ���� �� � �� ������� �� ����� �� �������� ��������� � �� ��� �� "����� � �� ��� ��� �� ������� 0

� �� ����������#! ��� �� � ��� � ��� �� = P � �� � ���B � � �� =

! ��� �� B������� $ J

������� - � ��� �� )�� #$%

)���P � �� ��4 - ������� %

)���P � �� �0! - � ��� �� ����������%

����� #�0! A- T]&&$ J

�����P � �� #��4= �0!��� � �� � � �� $%

�0! - �0!����������%

K

K

3� ������������" �� � ��� ����� � � ����� ��� �� �����0 �� ���������� �� ��-��� ��� � �� ���� �� �2� � ���� ��� ��0

P � �� ���� � #P � �� � ���B = P � �� � ���B �$ J

P � �� ������� %

������� �� ��������� - �� ��������� ��� ���������%

������� ��� - ��� � ���� %

������ ������� %

K

��� ����� � .� ������� ��������

Page 61: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

0 � � �� �� �� �� � +����*����� �� ������� �� ������" ���� ��� � �� �������0

� VG � VG � VG V6 � 6� � V � � V � V V 6

� VG � VG V6� � V �

� VG V6� � V

V6� V6

A

:$��� ��� �� � ��� �� ���� �"� �� �� � ����� �������� � ���� ���� ������ �� �� ��� ������� �� � ��* ��� �"���� ������ ���;����*��� ���� � � � � ��� �� ���� �� ������ �� ��� � �� ��� �� � ������ �� ��� ��

G� 9��� �' ���� ���� ��� � �� � �� ������� �� ����-���"� �� ����� �� �0

�������� W � ������ � ����� �V ����

�������� ��� � �� ���� ��� ���� ��� �� � ��� �� ��� ����� �� .���� � �������� ��- ��� ��������" ��� � �� ���� ��� ��� �� ������ �� ���� ��� ��� : �� � ��� �� � ��� ��;� 8����� ������� �� ��� ���0 �� ���� �� � �� �����

�� ������� ��"���� ���� ������� �� ��� ��� � ����� � � ������ ��0

� �� �������#! ��� �� � ��� �������� = ! ��� �� � ��� ����� �=

! ��� �� B � ������= ! ��� �� B ���� $ J

� ������ - � ��� �� )�� #$%

���� - ��������� ������ #�� #���� $ �- �� #����� �$$ J

P � �� ���� - ����� ��� ������� �� ��&�� ����� ��� ���� & �� ����� ���C6���� ���� � � ��������1����� � ���� �� �������� ��� ������ ���� ��� �� ������� ����� ��

K

K

� �� ����" ����� ��- � � �� � �� ���� ��������� �� � ������ ����� ������ ��- �� ���� ��" �� � ���� ������� ����" �� �� ����� � �� ���� �� ������$��� ���� �� �� ������ � �� ���� ���"#��� ���� ���� - �������� , ���� ���"� ��� ���� �

�������� ��������"#� ������ � �� ������ ��� ������� ����� ���� �� ���� � �� ��"#� �����"� ����� ���� �� �������� � .��������� ���� � � ���� ��� �������� 0

���� - � ���! ��� �� #�������� $%

$��� ������� �� � ��� �� ���� ���� �� ���� � ����� � ��������� � ��������� � ����� ����� ������ � ���� � ����� ��� �� ����� �� � ��� �� ���� ��� �� ���"� ��� ��� �� ������������ ��� �� � ��� �� ���� ���� � �� ��� ���"� �� ��� ����� $� �� � �� � �� ������ ���� � �� �� ������ �� ����0

P � �� ���� - ���� ������������� � �� � ����� �������������� � �� %

.��������� �' ���� �� � �� ���� �� � ������� � ���� ��� �� � �� �� �� �� �� � �� ��� ��

�� ������� ���

Page 62: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

"����� � ��� ����� �� ��� ��������� ����� ) ������� �� ���� � ����� �� ���� �� ��� ���� ��� ���������� ��� ���� ��, �� �� � � ��� ��� ����� �������� �������� ���� �������� �� �� ������ �� �����

)���P � �� ����� ) ������ - � ������%

� ���� �' ���� �� � �� ���� �� ���� �� � �������*�� ����� ) ������ ����� ������� ��"#0

�����P � �� #����� ) ������= ����$%

$��� ��- �� �� "������ ����� ��� ����� �����"#��� ���� � � � �������" �� "�����

���� - ���� � ����� � ����%

��� �� ���� �����*�� ��� ������ �� �� ��������� �� ������ �����*�� ���� �2�����" �� ����� ������� �� ������ �� �� ��� ��� ��2������� ��� ���������0

! ��� �� �01= �0,%

����������#����� �= ����= �01$%

�����#���� = �01= �0,$%

������#���� $%

������#�01$%

���� - �0,%

$� "����� ����� �� �� ��" ���� ������� � ���0 ��� �� ����� �� ������� �� ��-��� ��� � ������ ���2� � ���� 5��"�� � � ���� �� ������� � ��� � ��-��� ��� � ���� ������� �� ����� ��������� � ���0

P � �� ���� ��#P � �� � ���B = P � �� � ���B �$ J

P � �� ������� %

������� �� ��������� - �� ��������� � ��� ���������%

������� ��� - ��� � ���� %

������ ������� %

K

.����#���� � ������� ������

�� �� � ��� �� ����� ��� � � ������ � ��������� �� �� ��������� � ������� � ���� �"�� �-��� ��������� � � � � ������ �� ��������" � ���� ����� �� ���� � � � ����� �� ������ �� � ����� ����� ��- � �� �����0

������� ������ T � (���� J

��� ���%

T � (���� ��%

K T � (���� %

������� T � (���� &���(���� �%

������� ������ T � &��� J

&���(���� � ���%

T � &��� ��%

K T � &���%

������� T � &��� &���&����%

. ������ ������ �� ��������� �� ���� ������� �� ������ �� "�����0 ����������� � ���� ��� �������� � ���� � �� ���� ��� ������ �� ������0

�� ����� � .� ������� ��������

Page 63: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

� �� ������#&���(���� �B ����$ J

T � (���� ���� - ����%

����� #���� A- T]&&$ J

T � (���� �0 - ����%

���� - ��������%

������ �0%

K

���� - T]&&%

K

� �� ������#&���&����B ����$ J

T � &��� ���� - ����%

����� #���� A- T]&&$ J

T � &��� �0 - ����%

���� - ��������%

������#�0�����$%

������ �0%

K

���� - T]&&%

K

��� � 4��� �� �� ����? ��2� ����

< � ������� �����" � ����� �� ������� �� � ������ ��������� �� �� �"��� �������0 ������� ���������� �� ���� ��� ����� ���� ���� � ��� �"�2���� � ������� �� �� �"# �� � ��� �����

�?� ����� �� �� ��"��� %����( ����� F 9�%���:������ #� ����� ������$ J

�<����� �� �������� ������ �� ��� ����( �0�� ��� #��0�� � ����� �$ J

��� ������&� �� ����� �� ����� ��� �� �� �0�� �K

K

�� ��������� � �� ����� �2������ � ��� �������� �"�� ���0

��� �0P��#&���&���� � ��� ����$ J

��� ����� - [T<;PNR%

&���&���� �0&��� - ����%

����� #�0&��� A- T]&&$ J

��� �0�� - �0�� &���#�0&��������$%

�� #�0�� � ����� $ ����� - �0�� %

�0&��� - �0&�������%

K

������ ����� %

K

5� ���� ��� ���� ����� ��� ����� �� ��������� �� �� ��" �0�� Y� �� ��� ���� �� �"�2�� ����� ��� � � ����� �� � ����0

�� ������� ���

Page 64: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

��� �0�� &���#&���(���� � � ��� ����$ J

��� �0�� - [T<;P[T%

&���(���� � �0&��� - ����%

����� #�0&��� A- T]&&$ J

�� #�0&�������� � �0�� $ �0�� - �0&��������%

�0&��� - �0&�������%

K

������ �0�� %

K

��� � 4��� �� �2� ����? �������� �� ���.����

3� �����" ���� ����� �������� �� �� ��� � � ��������" ��� �����0 � �� ������ � ������ �� �"�2������� � �� �� ������� ����� ��� �� CF, ���� ��� �� ������� �� ���� �� ����� ��� ����� � �� �"�2������ � �� ������ : �� ������; �� CF :�� � � ���� �� E6; ��"� ����� ������� ����� ���� �� ����� :���� �������� �� �� F6� � �� ���� �� ��� ����� ���; �� ���"� ������ � CF �� �"# �� �� ���"�2����

���� �� ������� ������ �� ������� ������ � �� �� ��" �0�� Y� � :�� � � �����; �� ������� ���� � � ���� �� � ���� � � � ��� :D;� ���� ��������� �� �� �#$��� ����� �� ����� ' � ���#�&�� ����� � �� ������ � ��������� � �� �"������� ��� � �� ���� ��� �� � ��� � ��������0

��� ���(��P0&���#��� � ��� D= &���(���� � � ��� ����$ J

��� �0�� - [T<;P[T%

&���(���� � �0&��� - ����%

����� #�0&��� A- T]&& BB �0�� � D$ J

�� #�0&�������� � �0�� $ �0�� - �0&��������%

�0&��� - �0&�������%

K

������ �0�� � D / �0�� � D%

K

3� ����� � �� �-��� ��� �� ������ ��������� �� � �� �� ��" �0P��� �� �������

�0�� Y� �#�0&��������$%

�� ���� ���0

���(��P0&���#����� = �0&��������$%

$� ��� ������ �� �� ���� ������� ��� �� �������� �� �� �� ��" � ����� �� ������� �� � �������� �� � ��� 2 �� �������� � � ��� ���� �� ��������" �������0

�� #�0:�� � ����� $ �����&� ���� ����� �� ����� ����� �� ������-�� ��� ������ �� ���

����� #�0&��� A- T]&&$ J

����� - ���(��P0&���#����� = �0&��������$%

�0&��� - �0&�������%

K

� �� �� ��" �0P�� ����� - ���� �� ��"#0

��� ����� � .� ������� ��������

Page 65: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

��� �0P��#&���&���� � ��� ����$ J

��� ����� - [T<;PNR%

&���&���� �0&��� - ����%

����� #�0&��� A- T]&&$ J

����� - ���(��P0&���#����� = �0&��������$%

�0&��� - �0&�������%

K

������ ����� %

K

.�� ;� ����� �� !����� ���� ������

��� � ����������� �� �� ����

$��� �����*�� �� ����' � �� ������� �� �� � ������� 3�������� ������� � ���� � � �� ��� � ������ ������ � �� ������ �� ����' � < � ������ ���� ���� � � �������� � � � ��� �� ��� &�- ����� � ������ �� ���� ��" �������� ���� ���� �����*�� ��������� ����' 0

������� ������ ! ���� � J

��� ���%

��� � ����%

K ! ���� �%

������� ������ <���� J

)���� � ������ %

! ���� � �0! ���� �%

K <���� %

!� ������ ��� � ������ �� ���� ��" �� "������ ������ �����*�� � ��������� � ���� ������� �������� ������ �� � ������ ��� � �� ��� �������0

� �� �����#<���� B ����� $ J

� � #��� � - .% � � ����� ��0! ���� �����% ���$ J

������ ?@ ����� �� ������ ?�@%

K

������ ?@ ����� �� ������ %

����� �� ������ - T]&&%

K

3�� �������� ����� �����-����� � ���"����� ������� �� ������� ������ ���"����� ��� �� ����� ������� ������� ��� ��� � ���"����� ��� ����� ��� �� ����' ��� ������� �����*�� :�� ������ �� ������"# ��� � ���� ���� �����;� ���"��� ���� ��- �� ��� �������� �� ��� � ��� ���� � ������� ��������� �� ��� ������� �����*�� ���� �� ������� 3� ��������" �� �� � ��� �� �������� �� ����������� � ������� ��� ���� �� ������ �"�� ����� ��� �������� �"�� � ������" ��� �� �����" �� ���� � � �� ��� �������� ��� �� ����� ������ � ������� ��� ���, �� �� � ������ ���� �������� �������� ��� ���� ��� �� ���� ����� �� � ������� ��� ��� � � ����' � �� ������� ������� �� ������� ������ ��� �������� ��� ��� �� ���������� ! �� ��� �� ��- � �� ������ �� � �������" ���� ������������ ��������0

�� ������� ���

Page 66: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

������� ���� )���� J

���= ����= � !��������= ����

K )����%

3�� ������ �� ��������� �� � ����� � ������ ���� �� ���� )����� ! ���� � � <���� �� ����� � �� ������ �� �"���0

��� � ��� �����S��� - 3S3%

��� � ��� �����T�� - 3T3%

��� � ��� �����T !�������� - 3�3%

��� � ��� �����P��� - 3�3%

)���� �� �)����#��� � ��� �$ J

������#�$ J

��� �����S����

������ ����%

��� �����P����

������ ����%

��� �����T���

������ ���%

��� �����T !���������

������ � !��������%

K

K

��� �����)�����#)���� � ��� �����$ J

��� � ��� � ����)����?@ - J3T3= 3S3= 3�3= 3�3K%

������ � ����)����?�����@%

K

������B ���� ���#������B ��= ! ���� �B � ���� �$ J

�� �� � ���� �����%

�� �� � ���� ��� ����%

������ ��%

K

�����B ���� ���# �����B ��= ! ���� � � ���B � ���� �$ J

�� �� '#' �� � ���� ����� �� '=' �� � ���� ��� ���� �� '$'%

������ ��%

K

������B ���� ���#������B ��= <���� B ����� $ J

�� �� ����� ��0! ���� �%

����� �� ������ - ��� )���� ?����� ��0! ���� �����@%

� � #��� � - .% � � ����� ��0! ���� �����% ���$ J

����� �� ������ ?�@ - ��� )����?����� ��0! ���� ��� ����@%

� � #��� � - .% � � ����� ��0! ���� ��� ����% ���$ J

��� �%

�� �� �%

����� �� ������ ?�@?�@ - �� �)����#�$%

K

K

������ ��%

K

��� ����� � .� ������� ��������

Page 67: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

� �� ������S ���#��� � ��� ��� = �����B ��$ J

�� �� 'G'%

� � #��� � - .% � � ��� % ���$ J

�� �� '�'%

K

�� �� 'G' �� ����%

K

�����B ���� ���# �����B ��= <���� � ���B ����� $ J

������S ���#����� ��0! ���� ��� ����= ��$%

� � #��� � - .% � � ����� ��0! ���� �����% ���$ J

�� �� 'G'%

� � #��� � - .% � � ����� ��0! ���� ��� ����% ���$ J

�� �� �����)�����#����� �� ������ ?�@?�@$%

K

�� �� 'G' �� ����%

K

������S ���#����� ��0! ���� ��� ����= ��$%

������ ��%

K

��� � ���� �� �� ���� �� (����

!� �� ���"� � �� �����" ��� ������� 4�6F�� � � ���� � � ������" �������� �� ��� ���������� ��� ���� � ������� �� ����' �� � � ����� ������ ���"��� �� �� � ���� � ���� � ������������� ��� ������� �2���� ���� ������" � Q��*"��� �� ����� ������� ��� � �� ������*� ���� �����' � ��� �� ����� ����� ���

� ������ �� ��� �� �� ����� 4�6F�� �� �����*��� �� ����' � ���� ������� �� ������* �� ������������ ��� ��� ������ ��� �� ������ � ������� ��� � �� ��� �� $� �� �� �� ��� ����� ����� ������ � ������� ��� ��� ��� � ��� �� �� �� ���� "���� �� �������� ��� �� � �����

���� �������� �� ��������� ��� ��-��� ��� �� ������ � �"� ��� ��� �� �� �� ���� "������ �������� ��� �� � ���� ����� �������� � ������� ��� ���� ��� ����� ���� ���� � �� ���� "���� �� �������� ��� �� � ���� ��� ����� ����� ���� � ������� ��� ���� �� ������0

' ����� �� ��- ���" ��� ��� ) �� ����� ���� ��������� � ��� �� �������� � ��� � �"����������� � � ������� ���&� �� �������� ��� ���"� ������� �� ������� ������

������� ������ ) �� ����� J

� � � ������ %

! ���� � �0! ���� �%

K ) �� �����%

3� ��������� �� ������ ��� ��� ���� ������� ������ � �������� ) �� ������ � "����0

�� ������� ���

Page 68: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

� �� �����#) �� �����B � �� �����$ J

� � #��� � - .% � � � �� �������0! ���� �����% ���$ J

������ ?@ � �� ������� ������ ?�@%

K

������ ?@ � �� ������� ������ %

� �� ������� ������ - T]&&%

K

�����B ���� ���# �����B ��= ) �� ����� � ���B � �� �����$ J

������S ���#� �� �������0! ���� ��� ����= ��$%

� � #��� � - .% � � � �� �������0! ���� �����% ���$ J

�� �� 'G'%

� � #��� � - .% � � � �� �������0! ���� ��� ����% ���$ J

�� #� �� ������� ������ ?�@?�@$ �� �� 'S'%

���� �� �� ' '%

K

�� �� 'G' �� ����%

K

������S ���#� �� �������0! ���� ��� ����= ��$%

������ ��%

K

���� ����� ��� ������� ��� � ��� ��� � �� ���� "���� �� �������� ��� ������ �� � �������� ��� �� � ���� �� ������� � � � �������� ��� �� �����0 � ��� ����� �� ������� ����� �� ���"� ������ � ������� ��� ��� �� ��� � �� ����� �� ����� �� �������� ���� ��� ������: ���� ����� ���� ���� �� � � ���� ��� ����� ������������ ��;� �� �"��� ���� ������� ���� � ��� � �� �� ����� ���� �� �� ������ ��0

� � � 4��������#) �� ����� � ���B � �� �����$ J

��� ���!� - .= ���[��� - .%

� � #��� � - .% � � � �� �������0! ���� �����% ���$ J

� � #��� � - .% � � � �� �������0! ���� ��� ����% ���$ J

�� #� �� ������� ������ ?�@?�@$ J

�� ##���$ + , -- .$ ���!���%

���� ���[�����%

K

K

K

������ ���!� A- ���[���%

K

��� � )���.���� �� (����

� ��� ���������� ����� ����� ���� �� ������ �� �"������� �� �� ������ ��� ���� ������ �� � ����' �� � � ����� �� ������

$����� � �� � � ������� ��� ��-���� �� ��� ��� �� ��� � � ���� ���� ��� �������� ��� ��� � ��� ����� �� � �� ����� �� �������� < � �����" ������ �� ��- �� � ���������� �������� ���� � ������ �� � ������� ��� ������� ��� �� �� ���� � �' ��� � � � ��� � �� ���� ��� �������� ��� ��� ��� � )������ �� �� ������� ���� , � ���� � � �� ��� �������� ���� �� �� ������ �� ������

���� ���� ������� ��� ��-��� ��� �������� ��� �� � ��� � ��������� � �� �"������� ���� � ����

�� ����� � .� ������� ��������

Page 69: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

� ������ $��� �� �� �����*� �� ���� ���� ��- �� � �� � �������" )����� �� ���������� �������� � � ��� � �� � � ������ � ������ �� � � �����" �� ����) �� ������ �� ������������S��� ����� ��� �� �������� �������� � �� �"#����� ��� ������0

� � ��S���#<���� � ���B ����� = ! ���� � � ���B � ���� �$ J

������ � ���� ����� �- . BB � ���� ����� � ����� ��0! ���� ����� BB

� ���� ��� ���� �- . BB � ���� ��� ���� � ����� ��0! ���� ��� ���� BB

����� �� ������ ?� ���� �����@?� ���� ��� ����@ -- ����%

K

� �� ����) �� �����#<���� B ����� = ) �� �����B � �� �����=

! ���� � � ���B � ���� �$ J

�� #��S���#����� = � ���� �$$ J

����� �� ������ ?� ���� �����@?� ���� ��� ����@ - ����%

������)����) �� �����#� �� �����= � ���� �$%

����) �� �����#����� = � �� �����=

#! ���� �$ J� ���� ������1= � ���� ��� ����K$%

����) �� �����#����� = � �� �����=

#! ���� �$ J� ���� �����= � ���� ��� �����1K$%

����) �� �����#����� = � �� �����=

#! ���� �$ J� ���� ������1= � ���� ��� ����K$%

����) �� �����#����� = � �� �����=

#! ���� �$ J� ���� �����= � ���� ��� �����1K$%

K

K

$��� �� ���� �� ��� � ��� �� ���� ��������� � ������� �' ����� �� ������ �� �"��� � � ����������" � ��� ���� � �����" �

) �� ����� � �� �����Y�� #! ���� � � ��� �0! ���� �$ J

) �� ����� ������� %

������� ��0! ���� � - �0! ���� �%

������� �� ������ - ��� � � ?�0! ���� �����@%

� � #��� � - .% � � �0! ���� �����% ���$ J

������� �� ������ ?�@ - ��� � �?�0! ���� ��� ����@%

� � #��� � - .% � � �0! ���� ��� ����% ���$ J

������� �� ������ ?�@?�@ - ����%

K

K

������ ������� %

K

� �� ������)����) �� �����#) �� �����B � �� �����= ! ���� � � ���B � ���� �$ J

� �� ������� ������ ?� ���� �����@?� ���� ��� ����@ - ����%

K

��� � ������ ��

. ����� �� ��� �� ����� &� �� �������� � ������� �� ��� ����������� ��� ������� ��������� � ��� � �2� �� �������� ��� ��� � ��� � ���� �� � ����� ������ $��� ������� ��� �� ����' ���� ���� � ������ �� ����� ����� ��� �� ��� ��� ������ ���� �� ��� � ��� ��� ���� ����� ����� ������� ��� ���� $��� ���� �� ����� �� ��� ����� �� ��� ������� � � ������� ��� �� � �� ��������� ��� � �� � �20

�� ������� ��

Page 70: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

! ���� � ����)����S���#<���� � ���B ����� $ J

! ���� � ������� %

������� ���� - �1% ������� �� ���� - �1%

� � #��� � - .% � � ����� ��0! ���� �����% ���$ J

� � #��� � - .% � � ����� ��0! ���� ��� ����% ���$ J

�� #����� �� ������ ?�@?�@ -- ����$ J

������� ���� - �% ������� �� ���� - �%

������ ������� %

K

K

K

������ ������� %

K

� �� �����) �� �����#<���� B ����� = ) �� �����B � �� �����=

! ���� � � ���B � ���� �$ J

� �� ����� - � �� �����Y�� #����� ��0! ���� �$%

����) �� �����#����� = � �� �����= � ���� �$%

K

< ����' ���� � ������ ���"� ����� ���� �� ���� �� ��� ���� �� ����� �����

� � � 4��������#<���� � ���B ����� $ J

<���� ����� N�0 - � ��<���� #����� $%

� � ��� ����� - ����%

! ���� � � ���� � - ����)����S���#����� N�0$%

����� #A��� ����� BB � ���� ����� �- .$ J

) �� ����� � �� �����%

�����) �� �����#����� N�0= � �� �����= � ���� �$%

��� ����� - � 4��������#� �� �����$%

� ���� � - ����)����S���#����� N�0$%

�����#� �� �����$%

K

�����#����� N�0$%

������ ��� �����%

K

$���� ��� ��� ������ �� ���"����� ����� �� � ���B� ��������� ���� ����� ��� ��������� � �� ���� ��� ���� ���-���� �� �� �� ������ �� ����� � �����) �� ������

<���� � ��<���� #<���� � ���B ����� $ J

<���� � ��%

� ����0! ���� � - ����� ��0! ���� �%

� ���� ������ - ��� )���� ?����� ��0! ���� �����@%

� � #��� � - .% � � ����� ��0! ���� �����% ���$ J

� ���� ������ ?�@ - ��� )����?����� ��0! ���� ��� ����@%

� � #��� � - .% � � ����� ��0! ���� ��� ����% ���$ J

� ���� ������ ?�@?�@ - ����� �� ������ ?�@?�@%

K

K

������ � ��%

K

��� ����� � .� ������� ��������

Page 71: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

$��� ���� ������ � � �����" ��������� ��- �� �� ��� ������� � ������ �� ���� �� �������� ���� ��� �����*��� � � �����* �� ���������� � �� ����� ��� O?@P ���� ������ ������� ��� ���

������� � ��* ��� � O �� P ���� ������ ��� ������� � ��������� $� ������� ������ �� ������ ��

�����" �� ����� � � ����' 0

G����G

GTTT�G

GT?@�G

G�?@TG

G�TTTG

G����G

3� ��� �� O�P � ��� ������ OGP �������� �� ������� �� ����� OTP � ���� �� ������" �� ������� ������8�� �� ������� ��� ��� ������� � ��* ��� :�� �� ��� ����' ; � �� ������� ��� ��� �������� ��������� � � � �� �2���� ������� ����� � ��� � �� �2���� � ����� �*�������

�� �"��� ��� ��- � �� ��� W ���� � ��0

������� ������ W ���� � J

��� � ������ %

! ���� � �0! ���� �%

K W ���� �%

�� ������ ��� �� ��������� � ���� ������� �� ������ ��0

� �� �����#W ���� �B � ���� �$ J

� � #��� � - .% � � � ���� ���0! ���� �����% ���$ J

������ ?@ � ���� ��� ������ ?�@%

K

������ ?@ � ���� ��� ������ %

� ���� ��� ������ - T]&&%

K

? �� ��������� � ���� ������ �� ���� ��0

�����B ���� ���# �����B ��= W ���� � � ���B � ���� �$ J

������S ���#� ���� ���0! ���� ��� ����= ��$%

� � #��� � - .% � � � ���� ���0! ���� �����% ���$ J

�� �� 'G'%

� � #��� � - .% � � � ���� ���0! ���� ��� ����% ���$ J

�� �� � ���� ��� ������ ?�@?�@%

K

�� �� 'G' �� ����%

K

������S ���#� ���� ���0! ���� ��� ����= ��$%

������ ��%

K

�� ������ �� ��������� � �� ��� � � �����" ���"#� ���� �� ��� �� ��"� �' ���� � ��� �������0

�� ������� ���

Page 72: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

W ���� � � ���� �Y��#! ���� � � ���B �0! ���� �$ J

W ���� � ������� %

������� ��0! ���� � - �0! ���� �%

������� �� ������ - ��� ��� ?�0! ���� �����@%

� � #��� � - .% � � �0! ���� �����% ���$ J

������� �� ������ ?�@ - ��� ���?�0! ���� ��� ����@%

� � #��� � - .% � � �0! ���� ��� ����% ���$ J

������� �� ������ ?�@?�@ - 3 3%

K

K

������ ������� %

K

�� ������� ���� ��� � � �����" � � ������ ��� ������ �� ����� ���� �� �� ������ ��0 �� ���� � �� ������ � � ������ ��� ��� ��� �� �������� ��� �� ���� �� � ������ ����� ��� ����' � �� ���������� �2���� �����" ���� �� ���� ��� ������� �� �� ��"# �� ������ �� �� ��� � � �� �� ������ �� ��� ����" ��� �� ������ � � ���� �����" � � �� � �� ��� ����� �� ������� �� �� ������ ��� ��� �� ����� ������ �� ����� ���� � �� ������� ����� �� ���� ���������" �� ��������� � ��� � � ��� �����$� ��� ��������� � �� �� ��" � 4�������� ���� -����� ����' � ����� ������ <������ �� ������ ����������� �0

� �� �����W ���� �#<���� � ���B ����� = � �B ��� ����= W ���� �B � ���� �$ J

<���� �0 - � ��<���� #����� $%

� ���� � - � ���� �Y��#����� ��0! ���� �$%

! ���� � � ���� �-J.=.K%

��� ���� - ����%

�� #A� 4��������#����� $$ J

�����W ���� �#�0= ��� ����= � ���� �= � ���� �$%

K

�����#�0$%

K

�� ������� �������� ����� �� �����0

� �� �����W ���� �#<���� B ����� = � �B ��� ����=

W ���� �B � ���� �= ! ���� � � ���B � ���� �$ J

�� #A���L���� #����� = � ���� �$$ J

��� ���� - ����%

K ���� J

������#����� �� ������ ?� ���� �����@?� ���� ��� ����@$ J

��� �����

����� �� ������ ?� ���� �����@?� ���� ��� ����@ - � !��������%

�� #��S���#����� = #! ���� �$J� ���� �����= � ���� ��� �����1K$$ J

����� �� ������ ?� ���� �����@?� ���� ��� �����1@ - � !��������%

� ���� ��� ������ ?� ���� �����@?� ���� ��� ����@ - 3?3%

� ���� ��� ������ ?� ���� �����@?� ���� ��� �����1@ - 3@3%

�����W ���� �#����� = ��� ����= � ���� �= ��������#����� = � ���� �$$%

K

�� #A��� ���� BB

��S���#����� = #! ���� �$J� ���� ������1= � ���� ��� ����K$$ J

�� ����� � .� ������� ��������

Page 73: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

����� �� ������ ?� ���� ������1@?� ���� ��� ����@ - � !��������%

� ���� ��� ������ ?� ���� �����@?� ���� ��� ����@ - 3�3%

� ���� ��� ������ ?� ���� ������1@?� ���� ��� ����@ - 3�3%

�����W ���� �#����� = ��� ����= � ���� �= ��������#����� = � ���� �$$%

K

����%

��� ����

� ���� ��� ������ ?� ���� �����@?� ���� ��� ����@ - �����T��%

�����W ���� �#����� = ��� ����= � ���� �= ��������#����� = � ���� �$$%

����%

��� � !���������

�� #� ���� ��� ������ ?� ���� �����@?� ���� ��� ����@--3 3$ J

� ���� ��� ������ ?� ���� �����@?� ���� ��� ����@ - �����T !��������%

K

�����W ���� �#����� = ��� ����= � ���� �= ��������#����� = � ���� �$$%

����%

K

K

K

$���� ��� ������ ����-�� � �� � !�������� � ��� �������� ��� ������ � ������� ��� ���� ���������� ������ ���� "����� �� �������� �������� ��� ����� ��� �� ����' � �� �� �� ������ �� �����" �$� ���� �������� �� �� ��� ��� ��� � !�������� �� ��� ��� ����� ��� �� �� � �� �� �� )��#$�

�� #� ���� ��� ������ ?� ���� �����@?� ���� ��� ����@--3 3

���� �������� � �� ��� �� ����� �� � � ������� ��� � !�������� �� ����' � � �������� �� ��� � �������" �

$��� ����� �� � �� �"����� �� �� �����" � ��������� �� ������ ��� ����������� ��� � �����*����� �� �������� �����W ���� �0

! ���� � ��������#<���� � ���B ����� = ! ���� � � ���B � ���� �$ J

! ���� � ������� - � ���� �%

������� �� ������%

�� #������� �� ���� �- ����� ��0! ���� ��� ����$ J

������� �� ���� - .%

������� ������%

K

������ ������� %

K

� � ���L���� #<���� � ���B ����� = ! ���� � � ���B � ���� �$ J

������ � ���� ����� �-. BB � ���� ��� ���� �-. BB

� ���� ����� � ����� ��0! ���� ����� BB

� ���� ��� ���� � ����� ��0! ���� ��� ����%

K

5� ���� ��� ���� �� �� �� ������� ������ ����� � � ����� ��� �������� � ��� ���������� �2��� ��� ����� � ������� ����� �� �� ���� �������� ��� ��- ��� �� �� ���� � ����������� ��� ������� � � ���� �� �� �����" � ��- �� �� �� ��" ���0

�� ������� ���

Page 74: antares.sip.ucm.esantares.sip.ucm.es/cpareja/libroCPP/docs/6 - memoria dinámica - completo.pdfa7@ 46! " a7@ 4a % " a7b 4@ $ a7e 4b % a7e @g6 46!" * = = . @g6 @ae 4a $ " # @g6 4@ 3

��� ���#��� ��= ��� ��?@$ J

������� �����#��?1@$%

<���� ����� %

����� �� ����� %

� �� �� ����� %

� � �0����%

W ���� � � ���� �%

�����W ���� �#����� = �0����= � ���� �$%

�� #�0����$ J

� �� �� 'W� ������' �� ����%

� �� �� � ���� �%

K ���� J

� �� �� 'T �� �����' �� ����%

K

K

� ���� ��� ��� ���� �� ������ �� ����' ��� ������ �� � -��� �2��� ��� �� ���� �����"������ &�� -��� � ��� � � �� ������� �"# �� ��� ���� �� �� ��� ������ � � ��� ������ ��� � ����������" ��� ����' � �����*� � O�P ���� ��� �������� ��� ����� ��� �� ����' � OTP ���� ��� ��������� ������� ������ � OSP ���� ��� ��� ������� ����� � ������� ��� ���� !���� ���� ������" � �� ��������

���� *����� ;�)� ��4��� *��� *��� �� �����*�

��� �� ��(�)������� ��������������

;������� ����� ��*� ����(� ��� ����������)�

<� ����������)�(�

�� ��;�����

��.� �0���*�� ���

��� ����� � .� ������� ��������