ਦਿਲਚਸਪ

ਡੇਲਫੀ ਵਿਚ ਯਾਦਦਾਸ਼ਤ ਦੀ ਵੰਡ ਨੂੰ ਸਮਝਣਾ

ਡੇਲਫੀ ਵਿਚ ਯਾਦਦਾਸ਼ਤ ਦੀ ਵੰਡ ਨੂੰ ਸਮਝਣਾ

ਆਪਣੇ ਕੋਡ ਤੋਂ ਇੱਕ ਵਾਰ ਫੰਕਸ਼ਨ ਨੂੰ "ਡੋਸਟੈਕਓਵਰਫਲੋ" ਤੇ ਕਾਲ ਕਰੋ ਅਤੇ ਤੁਸੀਂ ਪ੍ਰਾਪਤ ਕਰੋਗੇ ਈਸਟੈਕ ਓਵਰਫਲੋ "ਸਟੈਕ ਓਵਰਫਲੋ" ਸੁਨੇਹਾ ਦੇ ਨਾਲ ਡੇਲਫੀ ਦੁਆਰਾ ਗਲਤੀ

ਕਾਰਜ ਡੌਸਟੈਕਓਵਰਫਲੋ: ਪੂਰਨ ਅੰਕ;

ਸ਼ੁਰੂ

ਨਤੀਜਾ: = 1 + ਡੋਸਟੈਕ ਓਵਰਫਲੋ;

ਅੰਤ;

ਇਹ "ਸਟੈਕ" ਕੀ ਹੈ ਅਤੇ ਉਪਰੋਕਤ ਕੋਡ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਥੇ ਓਵਰਫਲੋ ਕਿਉਂ ਹੈ?

ਇਸ ਲਈ, ਡੌਸਟੈਕਓਵਰਫਲੋ ਫੰਕਸ਼ਨ ਆਪਣੇ ਆਪ ਨੂੰ ਦੁਬਾਰਾ ਬੁਲਾ ਰਿਹਾ ਹੈ - ਬਿਨਾਂ ਕਿਸੇ "ਐਗਜ਼ਿਟ ਰਣਨੀਤੀ" ਦੇ - ਇਹ ਸਿਰਫ ਕਤਾਈ ਨੂੰ ਜਾਰੀ ਰੱਖਦਾ ਹੈ ਅਤੇ ਕਦੇ ਬਾਹਰ ਨਹੀਂ ਹੁੰਦਾ.

ਇੱਕ ਤੇਜ਼ ਫਿਕਸ, ਜੋ ਤੁਸੀਂ ਕਰਦੇ ਹੋ, ਉਹ ਹੈ ਸਪੱਸ਼ਟ ਬੱਗ ਨੂੰ ਸਾਫ ਕਰਨਾ ਅਤੇ ਇਹ ਸੁਨਿਸ਼ਚਿਤ ਕਰਨਾ ਕਿ ਕਾਰਜ ਕਿਸੇ ਸਮੇਂ ਮੌਜੂਦ ਹੈ (ਤਾਂ ਜੋ ਤੁਹਾਡਾ ਕੋਡ ਚਲਾਉਣਾ ਜਾਰੀ ਰੱਖ ਸਕੇ ਜਿੱਥੋਂ ਤੁਸੀਂ ਫੰਕਸ਼ਨ ਨੂੰ ਬੁਲਾਇਆ ਹੈ).

ਤੁਸੀਂ ਅੱਗੇ ਵਧਦੇ ਹੋ, ਅਤੇ ਤੁਸੀਂ ਕਦੇ ਪਿੱਛੇ ਮੁੜਦੇ ਨਹੀਂ ਹੋ, ਬੱਗ / ਅਪਵਾਦ ਦੀ ਪਰਵਾਹ ਨਹੀਂ ਕਰਦੇ ਕਿਉਂਕਿ ਇਹ ਹੁਣ ਹੱਲ ਹੋ ਗਿਆ ਹੈ.

ਫਿਰ ਵੀ, ਸਵਾਲ ਬਾਕੀ ਹੈ: ਇਹ ਸਟੈਕ ਕੀ ਹੈ ਅਤੇ ਇੱਥੇ ਓਵਰਫਲੋ ਕਿਉਂ ਹੈ?

ਤੁਹਾਡੇ ਡੇਲਫੀ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਿਚ ਯਾਦਦਾਸ਼ਤ

ਜਦੋਂ ਤੁਸੀਂ ਡੇਲਫੀ ਵਿਚ ਪ੍ਰੋਗ੍ਰਾਮਿੰਗ ਅਰੰਭ ਕਰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਸ਼ਾਇਦ ਬੱਗ ਦਾ ਅਨੁਭਵ ਹੋ ਸਕਦਾ ਹੈ ਜਿਵੇਂ ਤੁਸੀਂ ਉਪਰੋਕਤ ਵਾਂਗ ਹੋ, ਤੁਸੀਂ ਇਸਨੂੰ ਹੱਲ ਕਰੋਗੇ ਅਤੇ ਅੱਗੇ ਵਧੋਗੇ. ਇਹ ਇਕ ਯਾਦਦਾਸ਼ਤ ਦੀ ਵੰਡ ਨਾਲ ਸੰਬੰਧਿਤ ਹੈ. ਬਹੁਤਾ ਸਮਾਂ ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਉਸ ਚੀਜ਼ ਨੂੰ ਮੁਕਤ ਨਹੀਂ ਕਰਦੇ ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਉਸ ਨੂੰ ਯਾਦ ਨਹੀਂ ਕਰਦੇ.

ਜਿਵੇਂ ਕਿ ਤੁਸੀਂ ਡੇਲਫੀ ਵਿਚ ਵਧੇਰੇ ਤਜਰਬਾ ਹਾਸਲ ਕਰਦੇ ਹੋ, ਤੁਸੀਂ ਆਪਣੀਆਂ ਕਲਾਸਾਂ ਬਣਾਉਣਾ ਸ਼ੁਰੂ ਕਰਦੇ ਹੋ, ਉਹਨਾਂ ਨੂੰ ਸਥਾਪਿਤ ਕਰਦੇ ਹੋ, ਮੈਮੋਰੀ ਪ੍ਰਬੰਧਨ ਅਤੇ ਇਕੋ ਜਿਹੇ ਦੀ ਦੇਖਭਾਲ ਕਰਦੇ ਹੋ.

ਤੁਸੀਂ ਉਸ ਬਿੰਦੂ ਤੇ ਪਹੁੰਚੋਗੇ ਜਿਥੇ ਤੁਸੀਂ ਪੜ੍ਹੋਗੇ, ਮਦਦ ਵਿੱਚ, ਕੁਝ ਅਜਿਹਾ "ਸਥਾਨਕ ਵੇਰੀਏਬਲ (ਕਾਰਜ ਅਤੇ ਕਾਰਜਾਂ ਦੇ ਅੰਦਰ ਘੋਸ਼ਿਤ ਕੀਤੇ ਗਏ) ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਵਿੱਚ ਹੁੰਦੇ ਹਨ ਸਟੈਕ." ਅਤੇ ਇਹ ਵੀ ਕਲਾਸਾਂ ਹਵਾਲੇ ਦੀਆਂ ਕਿਸਮਾਂ ਹੁੰਦੀਆਂ ਹਨ, ਇਸ ਲਈ ਉਨ੍ਹਾਂ ਨੂੰ ਅਸਾਈਨਮੈਂਟ 'ਤੇ ਨਕਲ ਨਹੀਂ ਕੀਤਾ ਜਾਂਦਾ, ਉਹ ਹਵਾਲੇ ਦੁਆਰਾ ਪਾਸ ਕੀਤੇ ਜਾਂਦੇ ਹਨ, ਅਤੇ ਉਹ' ਤੇ ਨਿਰਧਾਰਤ ਕੀਤੇ ਜਾਂਦੇ ਹਨ .ੇਰ.

ਤਾਂ ਫਿਰ, “ਸਟੈਕ” ਕੀ ਹੈ ਅਤੇ “heੇਰ” ਕੀ ਹੈ?

ਸਟੈਕ ਬਨਾਮ ਹੀਪ

ਵਿੰਡੋਜ਼ 'ਤੇ ਆਪਣੀ ਐਪਲੀਕੇਸ਼ਨ ਚਲਾਉਣ ਨਾਲ, ਮੈਮੋਰੀ ਵਿਚ ਤਿੰਨ ਖੇਤਰ ਹਨ ਜਿੱਥੇ ਤੁਹਾਡੀ ਐਪਲੀਕੇਸ਼ਨ ਡਾਟਾ ਸਟੋਰ ਕਰਦੀ ਹੈ: ਗਲੋਬਲ ਮੈਮੋਰੀ, ਹੀਪ ਅਤੇ ਸਟੈਕ.

ਗਲੋਬਲ ਵੇਰੀਏਬਲ (ਉਹਨਾਂ ਦੇ ਮੁੱਲ / ਡੇਟਾ) ਗਲੋਬਲ ਮੈਮੋਰੀ ਵਿੱਚ ਸਟੋਰ ਕੀਤੇ ਜਾਂਦੇ ਹਨ. ਗਲੋਬਲ ਵੇਰੀਏਬਲਸ ਲਈ ਮੈਮੋਰੀ ਤੁਹਾਡੀ ਐਪਲੀਕੇਸ਼ਨ ਦੁਆਰਾ ਸੁਰੱਖਿਅਤ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਜਦੋਂ ਪ੍ਰੋਗਰਾਮ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ ਅਤੇ ਉਦੋਂ ਤਕ ਨਿਰਧਾਰਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਤੱਕ ਤੁਹਾਡਾ ਪ੍ਰੋਗਰਾਮ ਖਤਮ ਨਹੀਂ ਹੁੰਦਾ. ਗਲੋਬਲ ਵੇਰੀਏਬਲਸ ਲਈ ਮੈਮੋਰੀ ਨੂੰ "ਡੇਟਾ ਸੈਗਮੈਂਟ" ਕਿਹਾ ਜਾਂਦਾ ਹੈ.

ਕਿਉਂਕਿ ਗਲੋਬਲ ਮੈਮੋਰੀ ਸਿਰਫ ਇਕ ਵਾਰ ਨਿਰਧਾਰਤ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਅਤੇ ਪ੍ਰੋਗਰਾਮ ਸਮਾਪਤ ਹੋਣ ਤੇ ਮੁਕਤ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਇਸ ਲਈ ਅਸੀਂ ਇਸ ਲੇਖ ਵਿਚ ਇਸ ਦੀ ਪਰਵਾਹ ਨਹੀਂ ਕਰਦੇ.

ਸਟੈਕ ਅਤੇ ਹੀਪ ਉਹ ਹੁੰਦੇ ਹਨ ਜਿੱਥੇ ਗਤੀਸ਼ੀਲ ਮੈਮੋਰੀ ਵੰਡ ਹੁੰਦੀ ਹੈ: ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ ਫੰਕਸ਼ਨ ਲਈ ਇੱਕ ਵੇਰੀਏਬਲ ਬਣਾਉਂਦੇ ਹੋ, ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ ਕਲਾਸ ਦੀ ਇੱਕ ਉਦਾਹਰਣ ਬਣਾਉਂਦੇ ਹੋ ਜਦੋਂ ਤੁਸੀਂ ਕਿਸੇ ਫੰਕਸ਼ਨ ਨੂੰ ਪੈਰਾਮੀਟਰ ਭੇਜਦੇ ਹੋ ਅਤੇ ਇਸਦਾ ਨਤੀਜਾ ਮੁੱਲ ਵਰਤ / ਪਾਸ ਕਰਦੇ ਹੋ.

ਸਟੈਕ ਕੀ ਹੈ?

ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ ਫੰਕਸ਼ਨ ਦੇ ਅੰਦਰ ਇੱਕ ਵੇਰੀਏਬਲ ਦਾ ਐਲਾਨ ਕਰਦੇ ਹੋ, ਵੇਰੀਏਬਲ ਨੂੰ ਰੱਖਣ ਲਈ ਲੋੜੀਂਦੀ ਮੈਮੋਰੀ ਸਟੈਕ ਤੋਂ ਨਿਰਧਾਰਤ ਕੀਤੀ ਜਾਂਦੀ ਹੈ. ਤੁਸੀਂ ਬਸ "ਵਾਰ x: ਪੂਰਨ ਅੰਕ" ਲਿਖੋ, ਆਪਣੇ ਫੰਕਸ਼ਨ ਵਿੱਚ "x" ਦੀ ਵਰਤੋਂ ਕਰੋ, ਅਤੇ ਜਦੋਂ ਫੰਕਸ਼ਨ ਬੰਦ ਹੋ ਜਾਂਦਾ ਹੈ, ਤੁਹਾਨੂੰ ਮੈਮੋਰੀ ਵੰਡ ਅਤੇ ਨਾ ਹੀ ਖਾਲੀ ਕਰਨ ਦੀ ਪਰਵਾਹ ਹੁੰਦੀ ਹੈ. ਜਦੋਂ ਵੇਰੀਏਬਲ ਸਕੋਪ ਤੋਂ ਬਾਹਰ ਹੋ ਜਾਂਦਾ ਹੈ (ਕੋਡ ਫੰਕਸ਼ਨ ਤੋਂ ਬਾਹਰ ਆਉਂਦਾ ਹੈ), ਮੈਮੋਰੀ ਜੋ ਸਟੈਕ 'ਤੇ ਲਈ ਗਈ ਸੀ ਨੂੰ ਖਾਲੀ ਕਰ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ.

ਸਟੈਕ ਮੈਮੋਰੀ ਨੂੰ ਆਰਜੀ ਤੌਰ ਤੇ LIFO ("ਪਹਿਲਾਂ ਆਉਟ ਵਿੱਚ ਪਹਿਲਾਂ") ਪਹੁੰਚ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਨਿਰਧਾਰਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ.

ਡੇਲਫੀ ਪ੍ਰੋਗਰਾਮਾਂ ਵਿਚ, ਸਟੈਕ ਮੈਮੋਰੀ ਦੁਆਰਾ ਵਰਤੀ ਜਾਂਦੀ ਹੈ

  • ਸਥਾਨਕ ਰੁਟੀਨ (ਵਿਧੀ, ਵਿਧੀ, ਕਾਰਜ) ਵੇਰੀਏਬਲ.
  • ਰੁਟੀਨ ਪੈਰਾਮੀਟਰ ਅਤੇ ਵਾਪਸੀ ਦੀਆਂ ਕਿਸਮਾਂ.
  • ਵਿੰਡੋਜ਼ ਏਪੀਆਈ ਫੰਕਸ਼ਨ ਕਾਲ.
  • ਰਿਕਾਰਡ (ਇਸ ਲਈ ਤੁਹਾਨੂੰ ਸਪਸ਼ਟ ਤੌਰ ਤੇ ਕਿਸੇ ਰਿਕਾਰਡ ਕਿਸਮ ਦੀ ਉਦਾਹਰਣ ਬਣਾਉਣ ਦੀ ਜ਼ਰੂਰਤ ਨਹੀਂ ਹੈ).

ਤੁਹਾਨੂੰ ਸਟੈਕ 'ਤੇ ਸਪੱਸ਼ਟ ਤੌਰ ਤੇ ਮੈਮੋਰੀ ਖਾਲੀ ਨਹੀਂ ਕਰਨੀ ਪੈਂਦੀ, ਕਿਉਂਕਿ ਮੈਮੋਰੀ ਤੁਹਾਡੇ ਲਈ ਆਟੋਮੈਟਿਕ-ਜਾਦੂਗਤ ਤੌਰ' ਤੇ ਨਿਰਧਾਰਤ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਜਦੋਂ ਤੁਸੀਂ, ਉਦਾਹਰਣ ਵਜੋਂ, ਇੱਕ ਫੰਕਸ਼ਨ ਲਈ ਸਥਾਨਕ ਵੇਰੀਏਬਲ ਘੋਸ਼ਿਤ ਕਰਦੇ ਹੋ. ਜਦੋਂ ਕਾਰਜ ਬੰਦ ਹੋ ਜਾਂਦਾ ਹੈ (ਕਈ ਵਾਰੀ ਪਹਿਲਾਂ ਡੇਲਫੀ ਕੰਪਾਈਲਰ optimਪਟੀਮਾਈਜ਼ੇਸ਼ਨ ਦੇ ਕਾਰਨ ਵੀ) ਵੇਰੀਏਬਲ ਲਈ ਮੈਮੋਰੀ ਆਟੋਮੈਟਿਕ-ਜਾਦੂਗਤ ਤੌਰ ਤੇ ਮੁਕਤ ਹੋ ਜਾਂਦੀ ਹੈ.

ਸਟੈਕ ਮੈਮੋਰੀ ਦਾ ਆਕਾਰ, ਡਿਫਾਲਟ ਰੂਪ ਵਿੱਚ, ਤੁਹਾਡੇ (ਡੈਟਲਫੀ ਪ੍ਰੋਗਰਾਮ ਜਿੰਨੇ ਗੁੰਝਲਦਾਰ ਹੁੰਦੇ ਹਨ) ਲਈ ਕਾਫ਼ੀ ਵੱਡਾ ਹੁੰਦਾ ਹੈ. ਤੁਹਾਡੇ ਪ੍ਰੋਜੈਕਟ ਲਈ ਲਿੰਕਰ ਵਿਕਲਪਾਂ ਤੇ "ਅਧਿਕਤਮ ਸਟੈਕ ਆਕਾਰ" ਅਤੇ "ਘੱਟੋ ਘੱਟ ਸਟੈਕ ਆਕਾਰ" ਦੇ ਮੁੱਲ ਮੂਲ ਮੁੱਲ ਨਿਰਧਾਰਤ ਕਰਦੇ ਹਨ - 99.99% ਵਿੱਚ ਤੁਹਾਨੂੰ ਇਸ ਨੂੰ ਬਦਲਣ ਦੀ ਜ਼ਰੂਰਤ ਨਹੀਂ ਹੋਵੇਗੀ.

ਸਟੈਕ ਨੂੰ ਮੈਮੋਰੀ ਬਲਾਕਾਂ ਦੇ ileੇਰ ਵਜੋਂ ਸੋਚੋ. ਜਦੋਂ ਤੁਸੀਂ ਸਥਾਨਕ ਵੇਰੀਏਬਲ ਦਾ ਐਲਾਨ / ਵਰਤੋਂ ਕਰਦੇ ਹੋ, ਤਾਂ ਡੇਲਫੀ ਮੈਮੋਰੀ ਪ੍ਰਬੰਧਕ ਚੋਟੀ ਤੋਂ ਬਲਾਕ ਨੂੰ ਚੁਣੇਗਾ, ਇਸ ਦੀ ਵਰਤੋਂ ਕਰੇਗਾ, ਅਤੇ ਜਦੋਂ ਇਸ ਦੀ ਜ਼ਰੂਰਤ ਨਹੀਂ ਪਵੇਗੀ ਤਾਂ ਇਸ ਨੂੰ ਵਾਪਸ ਸਟੈਕ ਤੇ ਵਾਪਸ ਕਰ ਦਿੱਤਾ ਜਾਵੇਗਾ.

ਸਟੈਕ ਤੋਂ ਸਥਾਨਕ ਵੇਰੀਏਬਲ ਮੈਮੋਰੀ ਦੀ ਵਰਤੋਂ ਕਰਕੇ, ਸਥਾਨਕ ਵੇਰੀਏਬਲ ਘੋਸ਼ਿਤ ਕੀਤੇ ਜਾਣ ਤੇ ਅਰੰਭ ਨਹੀਂ ਕੀਤੇ ਜਾਂਦੇ. ਕੁਝ ਫੰਕਸ਼ਨ ਵਿੱਚ ਇੱਕ ਵੇਰੀਏਬਲ "ਵੇਰ ਐਕਸ: ਇੰਟੀਜ਼ਰ" ਘੋਸ਼ਿਤ ਕਰੋ ਅਤੇ ਜਦੋਂ ਤੁਸੀਂ ਫੰਕਸ਼ਨ ਵਿੱਚ ਦਾਖਲ ਹੁੰਦੇ ਹੋ ਤਾਂ ਮੁੱਲ ਨੂੰ ਪੜ੍ਹਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ - x ਦਾ ਕੁਝ "ਅਜੀਬ" ਗੈਰ-ਜ਼ੀਰੋ ਮੁੱਲ ਹੋਵੇਗਾ. ਇਸ ਲਈ, ਆਪਣੇ ਸਥਾਨਕ ਵੇਰੀਏਬਲਸ ਦੇ ਮੁੱਲ ਨੂੰ ਪੜ੍ਹਨ ਤੋਂ ਪਹਿਲਾਂ ਹਮੇਸ਼ਾਂ ਅਰੰਭ ਕਰੋ (ਜਾਂ ਮੁੱਲ ਨਿਰਧਾਰਤ ਕਰੋ).

LIFO ਦੇ ਕਾਰਨ, ਸਟੈਕ (ਮੈਮੋਰੀ ਵੰਡ) ਕਾਰਜ ਬਹੁਤ ਤੇਜ਼ ਹਨ ਕਿਉਂਕਿ ਸਟੈਕ ਨੂੰ ਪ੍ਰਬੰਧਿਤ ਕਰਨ ਲਈ ਸਿਰਫ ਕੁਝ ਕਾਰਜ (ਪੁਸ਼, ਪੌਪ) ਲੋੜੀਂਦੇ ਹਨ.

Apੇਰ ਕੀ ਹੈ?

ਹੀਪ ਮੈਮੋਰੀ ਦਾ ਉਹ ਖੇਤਰ ਹੁੰਦਾ ਹੈ ਜਿਸ ਵਿੱਚ ਗਤੀਸ਼ੀਲ ਰੂਪ ਵਿੱਚ ਨਿਰਧਾਰਤ ਮੈਮੋਰੀ ਨੂੰ ਸਟੋਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ. ਜਦੋਂ ਤੁਸੀਂ ਕਿਸੇ ਕਲਾਸ ਦੀ ਉਦਾਹਰਣ ਬਣਾਉਂਦੇ ਹੋ, ਤਾਂ ਮੈਮਰੀ ਨੂੰ theੇਰ ਤੋਂ ਨਿਰਧਾਰਤ ਕਰ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ.

ਡੇਲਫੀ ਪ੍ਰੋਗਰਾਮਾਂ ਵਿਚ, ਹੀਪ ਮੈਮੋਰੀ ਨੂੰ / ਕਦੋਂ ਦੁਆਰਾ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ

  • ਇੱਕ ਕਲਾਸ ਦੀ ਇੱਕ ਉਦਾਹਰਣ ਬਣਾਉਣਾ.
  • ਗਤੀਸ਼ੀਲ ਐਰੇ ਬਣਾਉਣਾ ਅਤੇ ਮੁੜ ਅਕਾਰ ਕਰਨਾ.
  • ਗੇਟਮਿਮ, ਫਰੀਮੈਮ, ਨਿ and ਅਤੇ ਡਿਸਪੋਜ਼ () ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸਪਸ਼ਟ ਤੌਰ ਤੇ ਮੈਮੋਰੀ ਨਿਰਧਾਰਤ ਕਰੋ.
  • ਏਐਨਐਸਆਈ / ਵਾਈਡ / ਯੂਨੀਕੋਡ ਸਤਰਾਂ, ਰੂਪਾਂ, ਇੰਟਰਫੇਸਾਂ (ਡੇਲਫੀ ਦੁਆਰਾ ਆਪਣੇ ਆਪ ਪ੍ਰਬੰਧਿਤ) ਦੀ ਵਰਤੋਂ.

ਹੀਪ ਮੈਮੋਰੀ ਦਾ ਕੋਈ ਵਧੀਆ ਖਾਕਾ ਨਹੀਂ ਹੈ ਜਿੱਥੇ ਕੁਝ ਆਰਡਰ ਹੋਵੇਗਾ ਮੈਮੋਰੀ ਦੇ ਬਲਾਕਾਂ ਨੂੰ ਵੰਡ ਰਿਹਾ ਹੈ. Apੇਰ ਸੰਗਮਰਮਰ ਦੀ ਇੱਕ ਡੱਬ ਵਰਗਾ ਲੱਗਦਾ ਹੈ. Apੇਰ ਵਿੱਚੋਂ ਮੈਮੋਰੀ ਵੰਡ ਨਿਰਵਿਘਨ ਹੈ, ਇੱਥੋਂ ਦੇ ਇੱਕ ਬਲਾਕ ਦੀ ਥਾਂ ਇੱਕ ਬਲਾਕ. ਇਸ ਪ੍ਰਕਾਰ, apੇਰ ਦੀ ਤੁਲਨਾ ਸਟੈਕਾਂ ਨਾਲੋਂ ਥੋੜੀ ਹੌਲੀ ਹੁੰਦੀ ਹੈ.

ਜਦੋਂ ਤੁਸੀਂ ਇੱਕ ਨਵਾਂ ਮੈਮੋਰੀ ਬਲਾਕ ਪੁੱਛਦੇ ਹੋ (ਅਰਥਾਤ ਇੱਕ ਕਲਾਸ ਦੀ ਇੱਕ ਉਦਾਹਰਣ ਬਣਾਓ), ਡੇਲਫੀ ਮੈਮੋਰੀ ਪ੍ਰਬੰਧਕ ਤੁਹਾਡੇ ਲਈ ਇਸ ਨੂੰ ਸੰਭਾਲਣਗੇ: ਤੁਹਾਨੂੰ ਇੱਕ ਨਵਾਂ ਮੈਮੋਰੀ ਬਲਾਕ ਜਾਂ ਇੱਕ ਵਰਤਿਆ ਅਤੇ ਖਾਰਜ ਮਿਲੇਗਾ.

ਹੀਪ ਵਿਚ ਸਾਰੀ ਵਰਚੁਅਲ ਮੈਮੋਰੀ (ਰੈਮ ਅਤੇ ਡਿਸਕ ਸਪੇਸ) ਹੁੰਦੀ ਹੈ.

ਮੈਮੋਰੀ ਦਸਤੀ ਅਲਾਟ ਕਰਨਾ

ਹੁਣ ਜਦੋਂ ਯਾਦਦਾਸ਼ਤ ਬਾਰੇ ਸਭ ਸਪਸ਼ਟ ਹੈ, ਤੁਸੀਂ ਸੁਰੱਖਿਅਤ ਰੂਪ ਨਾਲ (ਜ਼ਿਆਦਾਤਰ ਮਾਮਲਿਆਂ ਵਿੱਚ) ਉਪਰੋਕਤ ਨੂੰ ਨਜ਼ਰ ਅੰਦਾਜ਼ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਬਸ ਤੁਸੀਂ ਡੇਲਫੀ ਪ੍ਰੋਗਰਾਮ ਲਿਖਣਾ ਜਾਰੀ ਰੱਖ ਸਕਦੇ ਹੋ ਜਿਵੇਂ ਕਿ ਤੁਸੀਂ ਕੱਲ੍ਹ ਕੀਤਾ ਸੀ.

ਬੇਸ਼ਕ, ਤੁਹਾਨੂੰ ਇਸ ਬਾਰੇ ਚੇਤੰਨ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਕਦੋਂ ਅਤੇ ਕਿਵੇਂ ਹੱਥੀਂ / ਮੁਫਤ ਮੈਮੋਰੀ ਨਿਰਧਾਰਤ ਕੀਤੀ ਜਾਵੇ.

"ਈਸਟੈਕਓਵਰਫਲੋ" (ਲੇਖ ਦੇ ਸ਼ੁਰੂ ਤੋਂ) ਉਭਾਰਿਆ ਗਿਆ ਸੀ ਕਿਉਂਕਿ ਡੌਸਟੈਕ ਓਵਰਫਲੋ ਦੇ ਹਰੇਕ ਕਾਲ ਦੇ ਨਾਲ ਸਟੈਕ ਤੋਂ ਮੈਮੋਰੀ ਦਾ ਇੱਕ ਨਵਾਂ ਹਿੱਸਾ ਵਰਤਿਆ ਗਿਆ ਹੈ ਅਤੇ ਸਟੈਕ ਦੀਆਂ ਸੀਮਾਵਾਂ ਹਨ. ਜਿੰਨਾ ਸੌਖਾ ਹੈ.