Π² ΡΠ΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ delete ΠΈ delete
ΠΡΠ»ΠΈΡΠΈΡ TRUNCATE ΠΎΡ DELETE Π² ΡΠ·ΡΠΊΠ΅ T-SQL
ΠΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡ Π²ΡΠ΅Ρ Π½Π° ΡΠ°ΠΉΡΠ΅ Info-Comp.ru! Π‘Π΅Π³ΠΎΠ΄Π½Ρ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΠ°ΠΌ ΠΎΠ± ΠΎΡΠ»ΠΈΡΠΈΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ TRUNCATE TABLE ΠΈ DELETE Π² ΡΠ·ΡΠΊΠ΅ T-SQL, ΠΡ ΡΠ·Π½Π°Π΅ΡΠ΅, Π² ΠΊΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ DELETE, Π° Π² ΠΊΠ°ΠΊΠΈΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅ΠΉ TRUNCATE.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ Π² Microsoft SQL Server ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ DELETE ΠΈ TRUNCATE TABLE. ΠΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΏΠΎΡ ΠΎΠΆΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎ β ΡΡΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ. Π ΡΠ²ΡΠ·ΠΈ Ρ ΡΡΠΈΠΌ Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ Π²ΠΎΠΏΡΠΎΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ β Π° Π² ΡΠ΅ΠΌ ΠΎΡΠ»ΠΈΡΠΈΠ΅ TRUNCATE ΠΎΡ DELETE? ΠΈΠ»ΠΈ ΠΠΎΠ³Π΄Π° Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ TRUNCATE, Π° ΠΊΠΎΠ³Π΄Π° DELETE? ΠΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ Π·Π°Π΄Π°ΡΡ ΠΈ Π½Π° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡΡ , Π²Π΅Π΄Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ SQL ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ, ΡΡΡΠΎΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΡΠΎΡΡ.
ΠΠ°ΠΌΠ΅ΡΠΊΠ°! Π‘Π±ΠΎΡΠ½ΠΈΠΊ ΡΡΠ°ΡΠ΅ΠΉ Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ° T-SQL ΠΈ Microsoft SQL Server β Π² ΡΡΠΎΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π΅ Ρ ΡΠΎΠ±ΡΠ°Π» Π»ΡΡΡΠΈΠ΅ ΡΠ²ΠΎΠΈ ΡΡΠ°ΡΡΠΈ ΠΏΠΎ SQL Server ΠΈ ΡΠ³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°Π» ΠΈΡ ΠΏΠΎ ΡΡΠΎΠ²Π½Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π΄Π°Π²Π°ΠΉΡΠ΅ Π΄Π°Π΄ΠΈΠΌ ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠΈΠΌ Π΄Π²ΡΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ DELETE?
DELETE β ΡΡΠΎ SQL ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΡΠ·ΡΠΊΠ° T-SQL, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΎΠ΄Π½Ρ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² Microsoft SQL Server, ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅ΡΡΡ Π² ΠΆΡΡΠ½Π°Π»Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, Ρ.Π΅. ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΠ΄Π°Π»Π΅Π½Π½Π°Ρ ΡΡΡΠΎΠΊΠ°.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ TRUNCATE TABLE?
TRUNCATE TABLE β ΡΡΠΎ SQL ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΡΠ·ΡΠΊΠ° T-SQL, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ΄Π°Π»ΡΠ΅Ρ Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅, Π½Π΅ Π·Π°ΠΏΠΈΡΡΠ²Π°Ρ Π² ΠΆΡΡΠ½Π°Π» ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΡΠΎΠΊ Π΄Π°Π½Π½ΡΡ . TRUNCATE TABLE ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ DELETE Π±Π΅Π· ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ WHERE, Π½ΠΎ ΠΎΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π±ΡΡΡΡΠ΅Π΅ ΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ².
Π‘ΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ° ΠΎΡΠ»ΠΈΡΠΈΠΉ TRUNCATE TABLE ΠΈ DELETE
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΡΠΎΡΠΌΠΈΡΡΠ΅ΠΌ ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΡΡΠ°Π·ΠΈΠΌ Π²ΡΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ TRUNCATE TABLE ΠΈ DELETE Π² ΡΠ·ΡΠΊΠ΅ T-SQL.
| DELETE | TRUNCATE TABLE |
| DELETE β ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ DML (Data Manipulation Language) | TRUNCATE TABLE β ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ DDL (Data Definition Language); |
| DELETE ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ Π·Π° ΡΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ WHERE | TRUNCATE TABLE ΡΠ΄Π°Π»ΡΠ΅Ρ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ, ΡΠ΅ΠΊΡΠΈΡ WHERE ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅Π»ΡΠ·Ρ |
| DELETE Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ Π² ΠΆΡΡΠ½Π°Π» ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ | TRUNCATE TABLE ΡΠ΄Π°Π»ΡΠ΅Ρ Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅, Π½Π΅ Π·Π°ΠΏΠΈΡΡΠ²Π°Ρ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΡΠΎΠΊ Π΄Π°Π½Π½ΡΡ Π² ΠΆΡΡΠ½Π°Π» ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ |
| ΠΠ»Ρ DELETE ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΠΆΡΡΠ½Π°Π»Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ | ΠΠ»Ρ TRUNCATE TABLE ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΌΠ΅Π½ΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΠΆΡΡΠ½Π°Π»Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, Π·Π° ΡΡΠ΅Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ½Π° Π½Π΅ Π·Π°Π½ΠΎΡΠΈΡ Π² ΠΆΡΡΠ½Π°Π» Π·Π°ΠΏΠΈΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ΄Π°Π»ΡΠ΅ΠΌΠΎΠΉ ΡΡΡΠΎΠΊΠΈ |
| DELETE Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ | TRUNCATE TABLE Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π±ΡΡΡΡΠ΅Π΅ ΡΠ°ΠΊΠΆΠ΅ Π·Π° ΡΡΠ΅Ρ ΠΌΠ΅Π½ΡΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΆΡΡΠ½Π°Π»Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ |
| DELETE ΡΠ΄Π°Π»ΡΠ΅Ρ ΡΡΡΠΎΠΊΠΈ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π·Π° ΡΠ°Π· | TRUNCATE TABLE ΡΠ΄Π°Π»ΡΠ΅Ρ Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΏΡΡΠ΅ΠΌ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΈΡ |
| DELETE ΡΠΎΠ·Π΄Π°Π΅Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΡ ΡΡΡΠΎΠΊΡ, ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΄Π°Π»ΠΈΡΡ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ | TRUNCATE TABLE Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ Π² ΡΠ΅Π»ΠΎΠΌ ΡΠ°Π±Π»ΠΈΡΡ ΠΈ ΡΡΡΠ°Π½ΠΈΡΡ, ΡΡΠΎΠ±Ρ ΡΠ΄Π°Π»ΠΈΡΡ Π²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ |
| DELETE ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΡΡΠ΅ΡΡΠΈΠΊ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΈ Π½Π΅ ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ Π΅Π³ΠΎ Π΄ΠΎ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ | TRUNCATE TABLE ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ ΡΡΠ΅ΡΡΠΈΠΊ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² Π΄ΠΎ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ |
| DELETE ΠΌΠΎΠΆΠ΅Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈΠ³Π³Π΅Ρ | TRUNCATE TABLE Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈΠ³Π³Π΅Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π² ΠΆΡΡΠ½Π°Π» Π½Π΅ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΡΡΠΎΠΊ |
| DELETE ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ | TRUNCATE TABLE ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ Π²ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ TRUNCATE ΡΠ΄Π°Π»ΡΠ΅Ρ Π²ΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ ΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ |
| DELETE ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, Π΅ΡΠ»ΠΈ ΡΠ°Π±Π»ΠΈΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ | TRUNCATE TABLE Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, Π΅ΡΠ»ΠΈ ΡΠ°Π±Π»ΠΈΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ |
| Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ DELETE, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΡΠ°Π²Π° Π½Π° ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ | Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ TRUNCATE TABLE, Ρ ΠΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΠ°Π²Π° Π½Π° ALTER TABLE, Ρ.Π΅. Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ |
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π² ΡΠ°Π±Π»ΠΈΡΡ, ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅ΡΠΈΡΡ, Π² ΠΊΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄Π»Ρ ΠΠ°Ρ Π±ΡΠ΄Π΅Ρ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ TRUNCATE TABLE, Π° Π² ΠΊΠ°ΠΊΠΎΠΌ DELETE.
Π‘Π°ΠΌΡΠΌ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠΌ Π·Π΄Π΅ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ Π½Π΅ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ, Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΡ, Ρ.Π΅. ΠΏΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡ WHERE, ΡΠΎ ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ DELETE.
Π, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΠ°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠΈΡΠ°ΡΡ Π²ΡΡ ΡΠ°Π±Π»ΠΈΡΡ, ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² Π½Π΅ Π²Π°ΠΆΠ½Ρ, ΡΠΎ Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅ΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ TRUNCATE TABLE, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π±ΡΡΡΡΠ΅ΠΉ, ΠΈ ΡΠ΅ΡΡΡΡΠΎΠ² Π·Π°ΡΡΠ°ΡΠΈΠ²Π°ΡΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΌΠ΅Π½ΡΡΠ΅.
ΠΡΠΈΠΌΠ΅Ρ ΠΎΡΠ»ΠΈΡΠΈΡ Π² ΡΠ°Π±ΠΎΡΠ΅ TRUNCATE TABLE ΠΎΡ DELETE
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ°Π±Π»ΠΈΡΡ ΡΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠΌ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ², Π·Π°ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½Π΅Π΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΡΠ΄Π°Π»ΠΈΠΌ ΠΈΡ ΡΠ½Π°ΡΠ°Π»Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ DELETE, Π° ΠΏΠΎΡΠΎΠΌ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ TRUNCATE TABLE (ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΎΠ·Π΄Π°Π² ΡΠ°Π±Π»ΠΈΡΡ).
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΡ
ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ DELETE
ΠΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ TRUNCATE TABLE
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ΅ΡΡΠΈΠΊ Π½Π΅ ΡΠ±ΡΠΎΡΠΈΠ»ΡΡ, ΠΈ Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠ»Π°ΡΡ, Π° Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ ΡΡΠ΅ΡΡΠΈΠΊ Π½Π°ΡΠ°Π»ΡΡ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π°.
ΠΠ°ΠΌΠ΅ΡΠΊΠ°! ΠΠ»Ρ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ° SQL ΠΈ T-SQL ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΌΠΎΠΈ Π²ΠΈΠ΄Π΅ΠΎΠΊΡΡΡΡ ΠΏΠΎ T-SQL, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠ° ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ .
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ delete (C++)
ΠΡΠΌΠ΅Π½ΡΠ΅Ρ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠ° ΠΏΠ°ΠΌΡΡΠΈ.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΡΠ³ΡΠΌΠ΅Π½Ρ Cast-Expression Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ Π½Π° Π±Π»ΠΎΠΊ ΠΏΠ°ΠΌΡΡΠΈ, Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠ°Π½Π΅Π΅ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° New. delete ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΈΠΏΠ° void ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠΈΠΌΠ΅Ρ:
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ delete Π² ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ, Π½Π΅ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ, new Π΄Π°Π΅Ρ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ delete Π΄Π»Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ 0. Π’Π°ΠΊΠ°Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΅ΡΠ»ΠΈ new Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ±ΠΎΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0, Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎΠΉ new ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±Π΅Π·Π²ΡΠ΅Π΄Π½ΡΠΌ. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΌ. Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ new ΠΈ DELETE.
new ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΈ delete ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ ΠΌΠ°ΡΡΠΈΠ²Ρ. ΠΡΠ»ΠΈ pointer ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° ΠΌΠ°ΡΡΠΈΠ², ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ ΠΏΡΡΡΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ ( [] ) ΠΏΠ΅ΡΠ΅Π΄ pointer :
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ delete ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ Π΅Π³ΠΎ ΠΏΠ°ΠΌΡΡΡ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π·ΡΠΌΠ΅Π½ΠΎΠ²ΡΠ²Π°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΏΠΎΡΠ»Π΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π΅ΠΏΡΠΎΠ³Π½ΠΎΠ·ΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΈΠ»ΠΈ Π²ΡΠ·Π²Π°ΡΡ ΡΠ±ΠΎΠΉ.
ΠΡΠ»ΠΈ delete ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ° C++, Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π΄ΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° (Π΅ΡΠ»ΠΈ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π΅ΡΡΡ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ).
ΠΡΠ»ΠΈ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ delete ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌ l-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΏΠΎΡΠ»Π΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° delete
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠ° Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° delete: ΠΎΠ΄ΠΈΠ½ Π΄Π»Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π° Π΄ΡΡΠ³ΠΎΠΉ Π΄Π»Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΠ΄Π° ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ:
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ Π΄Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΡΠΌΡ ΠΌΠ°ΡΡΠΈΠ²Π° delete ( delete [] ) Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΠΌΠ°ΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° DELETE Π² ΠΌΠ°ΡΡΠΈΠ²Π΅.
ΠΡΠΈΠΌΠ΅Ρ
ΠΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ delete
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ delete Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΈ Delete.
ΠΠ»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΠΈΠΏ ΠΊΠ»Π°ΡΡΠ° (ΠΊΠ»Π°ΡΡ, Π‘ΡΡΡΠΊΡΡΡΠ°ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅), Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ. ΠΠ»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΈΠΏΠ° ΠΊΠ»Π°ΡΡΠ° ΠΈΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΡΡΡ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ, Π΅ΡΠ»ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ delete Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΡΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΠ±Π»Π°ΡΡΠΈ ( :: ). Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° (Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ null). ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°; Π΅ΡΠ»ΠΈ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΡΠ°ΠΊΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ, Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ°, ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠΈΠΏ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π΅Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ, ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
[C++] ΠΡΡ Π»ΠΈ ΠΌΡ Π·Π½Π°Π΅ΠΌ ΠΎΠ± ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°Ρ new ΠΈ delete?
ΠΡΠΈΠ²Π΅Ρ! ΠΠΈΠΆΠ΅ ΡΠ΅ΡΡ ΠΏΠΎΠΉΠ΄Π΅Ρ ΠΎΠ± ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ
Π²ΡΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°Ρ
new ΠΈ delete, ΡΠΎΡΠ½Π΅Π΅ ΠΎ ΡΠΎΠΌ, ΠΎ ΡΠ΅ΠΌ Π½Π΅ ΠΏΠΈΡΡΡ Π² ΠΊΠ½ΠΈΠ³Π°Ρ
(ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ Π² ΠΊΠ½ΠΈΠ³Π°Ρ
Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
).
ΠΠ° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ ΠΌΠ΅Π½Ρ ΠΏΠΎΠ±ΡΠ΄ΠΈΠ»ΠΎ ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ new ΠΈ delete, ΠΊΠΎΡΠΎΡΠΎΠ΅ Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π²ΠΈΠΆΡ Π½Π° ΡΠΎΡΡΠΌΠ°Ρ
ΠΈ Π΄Π°ΠΆΠ΅(. ) Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΠΊΠ½ΠΈΠ³Π°Ρ
.
ΠΡΠ΅ Π»ΠΈ ΠΌΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ new ΠΈ delete? ΠΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΡΠΌΠ°Π΅ΠΌ, ΡΡΠΎ Π·Π½Π°Π΅ΠΌ?
ΠΡΠ° ΡΡΠ°ΡΡΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΡΡΠΈΠΌ (Π½Ρ, Π° ΡΠ΅, ΠΊΡΠΎ Π·Π½Π°ΡΡ, ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΊΡΠΈΡΠΈΠΊΠΎΠ²Π°ΡΡ:))
Note: Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΉΠ΄Π΅Ρ ΡΠ΅ΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ± ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ new, Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠΎΡΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° new ΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠΎΡΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° delete Π²ΡΠ΅ Π½ΠΈΠΆΠ΅Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ°Π²Π΄ΠΎΠΉ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ.
ΠΡΠ°ΠΊ, Π½Π°ΡΠ½Π΅ΠΌ Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΠΈΡΡΡ Π² ΠΊΠ½ΠΈΠ³Π°Ρ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ , ΠΊΠΎΠ³Π΄Π° ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ new (ΡΠ΅ΠΊΡΡ Π²Π·ΡΡ Β«Ρ ΠΏΠΎΡΠΎΠ»ΠΊΠ°Β», Π½ΠΎ Π²ΡΠ΅Π»ΠΎΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΏΡΠ°Π²Π΄Π΅):
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ new Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ°Π²Π½ΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠΌΡ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΈ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ·ΡΠΊΠ° Π‘, Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ(Ρ) Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°(ΠΎΠ²), ΠΏΠΎΠ΄ ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ°ΠΌΡΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½Π°β¦ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΈΡΡ (Π³Π΄Π΅-ΡΠΎ ΠΏΠΈΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ) ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ new ΠΏΠΎΠ΄ ΡΠ²ΠΎΠΈ Π½ΡΠΆΠ΄Ρ.
Π Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΡ (ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ) ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° new, ΠΏΡΠΎΡΠΎΡΠΈΠΏ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ
void* operator new (std::size_t size) throw (std::bad_alloc);
ΠΠ° ΡΡΠΎ Ρ
ΠΎΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅:
1. ΠΠΈΠ³Π΄Π΅ Π½Π΅ ΡΠ°Π·Π΄Π΅Π»ΡΡΡ new key-word ΡΠ·ΡΠΊΠ° Π‘++ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ new, Π²Π΅Π·Π΄Π΅ ΠΎ Π½ΠΈΡ
Π³ΠΎΠ²ΠΎΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ± ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ½ΠΎΡΡΠΈ.
2. ΠΠ΅Π·Π΄Π΅ ΠΏΠΈΡΡΡ, ΡΡΠΎ new Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ(Ρ) Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°(ΠΎΠ²).
Π ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΈ Π²ΡΠΎΡΠΎΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΌ Π·Π°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ.
ΠΠΎ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ Π½Π°Π΄Π΅ΡΡΡΡΡ Π½Π° ΠΊΠ½ΠΈΠ³ΠΈ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ , ΠΎΠ±ΡΠ°ΡΠΈΠΌΡΡ ΠΊ Π‘ΡΠ°Π½Π΄Π°ΡΡΡ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊ ΡΠ°Π·Π΄Π΅Π»Ρ 5.3.4 ΠΈ ΠΊ 18.6.1, Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈ ΡΠ°ΡΠΊΡΡΠ²Π°Π΅ΡΡΡ (ΡΠΎΡΠ½Π΅Π΅ ΠΏΡΠΈΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ) ΡΠ΅ΠΌΠ° Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ.
5.3.4
The new-expression attempts to create an object of the type-id (8.1) or new-type-id to which it is applied. /*Π΄Π°Π»ΡΡΠ΅ Π½Π°ΠΌ Π½Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ*/
18.6.1
void* operator new(std::size_t size) throw(std::bad_alloc);
Effects: The allocation function called by a new-expression (5.3.4) to allocate size bytes of
storage suitably aligned to represent any object of that size /*Π΄Π°Π»ΡΡΠ΅ Π½Π°ΠΌ Π½Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ*/
Π’ΡΡ ΠΌΡ ΡΠΆΠ΅ Π²ΠΈΠ΄ΠΈΠΌ, ΡΡΠΎ Π² ΠΏΠ΅ΡΠ²ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ new ΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ expression, Π° Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ ΠΎΠ½ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ ΠΊΠ°ΠΊ operator. Π ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ 2 ΡΠ°Π·Π½ΡΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ!
ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ ΠΏΠΎΡΠ΅ΠΌΡ ΡΠ°ΠΊ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ½ΡΠ΅ Π»ΠΈΡΡΠΈΠ½Π³ΠΈ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΊΠΎΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π³ΠΎ new. ΠΡ, Π° ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ±ΠΎ Π²ΡΠ΅ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ.
new-expression β ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΡΠ·ΡΠΊΠ°, ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΊΠ°ΠΊ if, while ΠΈ Ρ.Π΄. (Ρ
ΠΎΡΡ if, while ΠΈ Ρ.Π΄. Π²ΡΠ΅ ΠΆΠ΅ ΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΊΠ°ΠΊ statement, Π½ΠΎ ΠΎΡΠ±ΡΠΎΡΠΈΠΌ Π»ΠΈΡΠΈΠΊΡ) Π’.Π΅. Π²ΡΡΡΠ΅ΡΠ°Ρ Π΅Π³ΠΎ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΡΠΎΠΌΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ. Π’Π°ΠΊ ΠΆΠ΅ new β ΡΡΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· key-words ΡΠ·ΡΠΊΠ° Π‘++, ΡΡΠΎ Π΅ΡΠ΅ ΡΠ°Π· ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Π΅Ρ Π΅Π³ΠΎ ΠΎΠ±ΡΠ½ΠΎΡΡΡ Ρ if‘Π°ΠΌΠΈ, for’Π°ΠΌΠΈ ΠΈ Ρ.ΠΏ. Π operator new() Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ·ΡΠΊΠ° Π‘++, ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ. ΠΠΠΠΠ β operator new() ΠΠ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ(Ρ) Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°(ΠΎΠ²), ΠΏΠΎΠ΄ ΠΊΠΎΡΠΎΡΡΠΉ(ΡΠ΅) Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΠΌΡΡΡ. ΠΠ½ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΡ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΈ Π²ΡΠ΅. ΠΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠΈΡΠ½ΡΡ
ΡΡΠ½ΠΊΡΠΈΠΉ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΠΎΡΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π° ΡΠ°ΠΊ ΠΆΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ Π΄Π»Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ Π²Π·ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΅Π³ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° (ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡΠ΅ ΡΠ°ΠΌΠΈ:)).
Π Π²ΠΎΡ new-expression ΠΊΠ°ΠΊ ΡΠ°Π· ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ(Ρ) ΠΎΠ±ΡΠ΅ΠΊΡΠ°(ΠΎΠ²). Π₯ΠΎΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π΅ΠΉ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΎΠ½ ΡΠΎΠΆΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ, ΠΏΡΠΎΡΡΠΎ, Π²ΡΡΡΠ΅ΡΠ°Ρ Π΅Π³ΠΎ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠ΄ Π²ΡΠ·ΠΎΠ²Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°(ΠΎΠ²).
ΠΠ»Ρ ΠΏΠΎΠ»Π½ΠΎΡΡ ΠΊΠ°ΡΡΠΈΠ½Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΏΠΎΡΠ»Π΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠ°ΠΊ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π»ΠΎΡΡ, Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΠ΅ΡΠ°ΡΠ°Π½ΠΎ Β«Foo()Β». Π Π°Π·Π±Π΅ΡΠ΅ΠΌΡΡ ΠΏΠΎΡΠ΅ΠΌΡ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π·Π°Π³Π»ΡΠ½ΡΡΡ Π² Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π» Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π°.
(ΠΊΠΎΠ΄ ΠΏΠΎΠ»ΡΡΠ΅Π½ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ cl, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌ Π² MSVS 2012, Ρ
ΠΎΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ gcc, Π½ΠΎ ΡΡΠΎ ΠΊ Π΄Π΅Π»Ρ Π½Π΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ)
ΠΠ»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠ½ΡΠ», Π²ΠΎΡ (ΠΏΠΎΡΡΠΈ) Π°Π½Π°Π»ΠΎΠ³ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ Π½Π° ΡΠΈΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌ ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄Π΅ (Ρ.Π΅. Π½Π΅ Π½Π°Π΄ΠΎ ΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ :))
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°Π΅Ρ Π²ΡΠ΅, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ Π²ΡΡΠ΅, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ:
1. ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ (ΡΠ·ΡΠΊΠ°) new ΠΈ operator new() β ΡΡΠΎ ΠΠ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎΠΆΠ΅.
2. operator new() ΠΠ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ(Ρ)
3. Π²ΡΠ·ΠΎΠ² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°(ΠΎΠ²) Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, Π²ΡΡΡΠ΅ΡΠ°Ρ Π² ΠΊΠΎΠ΄Π΅ key-word Β«newΒ»
ΠΡΠΎΠ³: Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠ° ΡΡΠ°ΡΡΡ ΠΏΠΎΠΌΠΎΠ³Π»Π° Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ new-expressionΠΈ operator new() ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΡΠ·Π½Π°ΡΡ, ΡΡΠΎ ΠΎΠ½Π° (ΡΡΠ° ΡΠ°Π·Π½ΠΈΡΠ°) Π²ΠΎΠΎΠ±ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ Π½Π΅ Π·Π½Π°Π».
P.S. ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ delete ΠΈ operator delete() ΠΈΠΌΠ΅ΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΠ°ΡΡΠΈ Ρ ΡΠΊΠ°Π·Π°Π», ΡΡΠΎ Π½Π΅ Π±ΡΠ΄Ρ Π΅Π³ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ. ΠΡΠΌΠ°Ρ, ΡΠ΅ΠΏΠ΅ΡΡ Π²Ρ ΠΏΠΎΠ½ΡΠ»ΠΈ, ΠΏΠΎΡΠ΅ΠΌΡ Π΅Π³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ»Π° ΠΈ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅ Π΄Π»Ρ delete.
Update:
Π₯Π°Π±ΡΠ°ΠΆΠΈΡΠ΅Π»Ρ Ρ Π½ΠΈΠΊΠΎΠΌ khim Π² Π»ΠΈΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠΊΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Ρ
ΠΎΡΠΎΡΠΎ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΡΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅.
delete, new[] Π² C++ ΠΈ Π³ΠΎΡΠΎΠ΄ΡΠΊΠΈΠ΅ Π»Π΅Π³Π΅Π½Π΄Ρ ΠΎΠ± ΠΈΡ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ
ΠΡΠ»ΠΈ Π² ΠΊΠΎΠ΄Π΅ Π½Π° C++ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ ΠΌΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ Β«new[]Β», ΡΠ΄Π°Π»ΡΡΡ ΡΡΠΎΡ ΠΌΠ°ΡΡΠΈΠ² Π½ΡΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Β«delete[]Β» ΠΈ Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Β«deleteΒ» (Π±Π΅Π· ΡΠΊΠΎΠ±ΠΎΠΊ). Π Π°Π·ΡΠΌΠ½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ: Π° Π½Π΅ ΡΠΎ ΡΡΠΎ?
ΠΠ° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΈΡΠΎΡΠ°ΠΉΡΠΈΠΉ ΡΠΏΠ΅ΠΊΡΡ Π½Π΅ΡΠ°Π·ΡΠΌΠ½ΡΡ ΠΎΡΠ²Π΅ΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Β«Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»Π΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅ΠΊΡΡΒ» ΠΈΠ»ΠΈ Β«Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°Β». Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ Π·Π° ΡΡΠΈΠΌ Β«ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡΒ» Π½Π΅ Π²ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΎΠ±ΡΡΠ½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΡΠ΅ΡΡΠ΅Π·Π½ΠΎΠΉ ΠΊΡΠΈΡΠΈΠΊΠΈ.
Π ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΡΠΎ Π‘ΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ C++, Π² ΡΡΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ. ΠΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ β Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ Π³ΠΎΡΠΎΠ΄ΡΠΊΠΈΠ΅ Π»Π΅Π³Π΅Π½Π΄Ρ. Π Π°Π·Π±Π΅ΡΠ΅ΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ, ΠΏΠΎΡΠ΅ΠΌΡ.
ΠΠ°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Ρ ΠΈΡΡΡΠΉ ΠΏΠ»Π°Π½ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π±Ρ ΡΡΠ°Π²ΠΈΠ» Π² ΡΡΠΏΠΈΠΊ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΊΠΎΠ² Π³ΠΎΡΠΎΠ΄ΡΠΊΠΈΡ Π»Π΅Π³Π΅Π½Π΄. ΠΠΎΡ ΡΠ°ΠΊΠΎΠΉ Π±Π΅Π·ΠΎΠ±ΠΈΠ΄Π½ΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΠΊ:
ΠΠ΄Π΅ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½. ΠΡΠ»ΠΈ Π²Π΅ΡΠΈΡΡ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· Π΄Π²ΡΡ Π»Π΅Π³Π΅Π½Π΄ Π²ΡΡΠ΅, Β«Π²ΡΠ΅ Π±ΡΠ΄Π΅Ρ Ρ ΠΎΡΠΎΡΠΎΒ» β ΡΡΠ΅ΠΊΠ°ΡΡ Π½Π΅ΡΠ΅ΠΌΡ ΠΈ Π½Π΅ΠΊΡΠ΄Π°, Π΄Π΅ΡΡΡΡΠΊΡΠΎΡΠΎΠ² Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ΠΎ ΡΠΎΠ²Π½ΠΎ ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½ΡΠΆΠ½ΠΎ.
ΠΠ΄Π΅ΠΌ Π½Π° codepad.org, Π²ΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΊΠΎΠ΄ Π² ΡΠΎΡΠΌΡ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π²ΡΠ΄Π°ΡΡ:
MEMORY WHAT. Π§ΡΠΎ ΡΡΠΎ Π±ΡΠ»ΠΎ?
ΠΠ΄Π΅ΡΡ Ρ ΠΎΡΡ Π±Ρ Ρ Π²ΠΈΠ΄Ρ Π²ΡΠ΅ Ρ ΠΎΡΠΎΡΠΎ. Π§ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ? ΠΠΎΡΠ΅ΠΌΡ ΡΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ? ΠΠΎΡΠ΅ΠΌΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ Π²ΠΈΠ΄Ρ ΡΠ°Π·Π½ΠΎΠ΅?
ΠΡΠΈΡΠΈΠ½Π° Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²Π½ΡΡΡΠΈ.
ΠΠΎΠ³Π΄Π° Π² ΠΊΠΎΠ΄Π΅ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Β«new Type[count]Β», ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΠ±ΡΠ·Π°Π½Π° Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΎΠ±ΡΠ΅ΠΌΠ°, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ Β«operator new[]()Β». ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΡ β ΠΎΠ±ΡΡΠ½ΠΎ Π²Π½ΡΡΡΠΈ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ·ΠΎΠ² malloc() ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ β Π²ΡΠ·ΠΎΠ² new_handler() ΠΈ Π²ΡΠ±ΡΠΎΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ). ΠΠ°ΡΠ΅ΠΌ Π² Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΡΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ β Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π½ΡΠΆΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ². Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Β«new Type[count]Β» ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π°.
ΠΠΎΠ³Π΄Π° Π² ΠΊΠΎΠ΄Π΅ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Β«delete[] pointerΒ», ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ°Π·ΡΡΡΠΈΡΡ Π²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅, Π²ΡΠ·Π²Π°Π² Π΄Π»Ρ Π½ΠΈΡ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ (ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ) Π΅ΠΉ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΡΠΈΡΠ»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
ΠΠ°ΠΆΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ: Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Β«new Type[count]Β» ΡΠΈΡΠ»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ ΡΠ²Π½ΠΎ, Π° Β«delete[]Β» ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π°Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°.
ΠΡΠΊΡΠ΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ·Π½Π°Π΅Ρ ΡΠΈΡΠ»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²? Π Π°Π· Ρ Π½Π΅Π΅ Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π°Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΡΠΈΡΠ»ΠΈΡΡ Π΄Π»ΠΈΠ½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ°. ΠΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ, Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ±.
ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Β«new Type[count]Β» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΠΈ ΡΡΠΎΠ»ΡΠΊΠΎ, ΡΡΠΎΠ±Ρ Π² Π½Π΅Π΅ ΠΏΠΎΠΌΠ΅ΡΡΠΈΠ»ΠΈΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π½ΠΎ ΠΈ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ (ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΈΠΏΠ° size_t), ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². Π Π½Π°ΡΠ°Π»ΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠΈΡΠ΅ΡΡΡ ΡΡΠΎ ΡΠΈΡΠ»ΠΎ, Π΄Π°Π»ΡΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Β«new Type[count]Β» Π²ΡΡΠ°Π²Π»ΡΠ΅Ρ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΡΠΈ ΡΠ²ΠΈΡΡΠ΅Π»ΠΊΠΈ.
ΠΡΠ°ΠΊ, ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Β«new Type[count]Β» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΡΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠΈΡΠ»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² Π½Π°ΡΠ°Π»ΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° ΠΏΠ°ΠΌΡΡΠΈ, Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΌΡ ΠΊΠΎΠ΄Ρ Π°Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. ΠΠ΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ Π°Π΄ΡΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΠ»Π° ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Β«operator new[]()Β».
ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Β«delete[]Β» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±Π΅ΡΠ΅Ρ Π°Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠΉ Π² Β«delete[]Β», ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π°Π΄ΡΠ΅Ρ Π½Π°ΡΠ°Π»Π° Π±Π»ΠΎΠΊΠ° (Π²ΡΡΠΈΡΠ°Ρ ΡΠΎΠ²Π½ΠΎ ΡΡΠΎΠ»ΡΠΊΠΎ ΠΆΠ΅, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠΈΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Β«new[]Β»), ΡΠΈΡΠ°Π΅Ρ ΡΠΈΡΠ»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ· Π½Π°ΡΠ°Π»Π° Π±Π»ΠΎΠΊΠ°, Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π½ΡΠΆΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡΠΎΠ², Π·Π°ΡΠ΅ΠΌ β Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ Β«operator delete[]()Β», ΠΏΠ΅ΡΠ΅Π΄Π°Π² Π΅ΠΉ Π°Π΄ΡΠ΅Ρ Π½Π°ΡΠ°Π»Π° Π±Π»ΠΎΠΊΠ°.
Π ΠΎΠ±ΠΎΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ Ρ ΡΠ΅ΠΌ Π°Π΄ΡΠ΅ΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΏΠΎΠ·ΠΆΠ΅ β ΠΏΠ΅ΡΠ΅Π΄Π°Π½ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ ΠΏΡΠΈΠΌΠ΅ΡΡ. ΠΠΎΠ³Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Β«deleteΒ» (Π±Π΅Π· ΡΠΊΠΎΠ±ΠΎΠΊ), Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΊΠΎΠ΄ ΠΏΠΎΠ½ΡΡΠΈΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ³ΡΠ°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π°Π΄ΡΠ΅ΡΠ°. Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΎΠ½ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π² ΡΡΠ½ΠΊΡΠΈΡ Β«operator delete()Β» Π°Π΄ΡΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΡΠ°Π½Π΅Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Β«operator new[]()Β».
Π§ΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ? Π ΡΡΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π°Π²Π°ΡΠΈΠΉΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π‘ΡΠ°Π½Π΄Π°ΡΡ Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ, ΡΡΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ.
ΠΠ»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° Visual C++ 9 ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ Π² ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ, Π½ΠΎ Π²ΡΠΎΠ΄Π΅ Π±Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΠΎΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ (ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΡΡΠ½ΠΊΡΠΈΡ _heapchk() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠ΄ _HEAP_OK, _CrtDumpMemoryLeaks() Π½Π΅ Π²ΡΠ΄Π°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ). ΠΡΠΎ ΡΠΎΠΆΠ΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ.
ΠΠΎΡΠ΅ΠΌΡ Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄ΡΡΠ³ΠΎΠ΅? Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΡΠ΅Π», ΡΡΠΎ Ρ ΡΠΈΠΏΠ° char ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΠΉ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ, Ρ.Π΅. Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π΄Π΅Π»Π°ΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΡΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π° Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ ΠΏΠ°ΠΌΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈ ΡΠΈΡΠ»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Ρ ΡΠ°Π½ΠΈΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ, Π° Π·Π½Π°ΡΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π·Ρ Π²Π΅ΡΠ½ΡΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΌΡ ΠΊΠΎΠ΄Ρ ΡΠΎΡ ΠΆΠ΅ Π°Π΄ΡΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Π΅ΡΠ½ΡΠ»Π° ΡΡΠ½ΠΊΡΠΈΡ Β«operator new[]()Β». ΠΠΈΠΊΠ°ΠΊΠΈΡ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ Π°Π΄ΡΠ΅ΡΠ° β ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ Β«newΒ» (Π±Π΅Π· ΡΠΊΠΎΠ±ΠΎΠΊ). Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π‘ΡΠ°Π½Π΄Π°ΡΡΡ.
ΠΡ ΡΠΆΠ΅ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ Π²ΡΡΠ΅ ΠΏΠΎ ΡΠ΅ΠΊΡΡΡ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΡΠΎ Ρ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΡΠΌΠΈ ΡΠΊΠΎΠ±ΠΊΠ°ΠΌΠΈ, ΡΠΎ Π±Π΅Π·? ΠΡΠΎ Π½Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΊΠΈ β ΡΡΠΎ Π΄Π²Π΅ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ. ΠΠ°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΡΡΠ°Π΅ΡΡΡ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ, ΠΎΠ½ Π²ΡΠ΅Π³Π΄Π° Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ Β«operator new[]()Β», ΠΊΠΎΠ³Π΄Π° Π²ΠΈΠ΄ΠΈΡ Π² ΠΊΠΎΠ΄Π΅ Β«new Type[count]Β», ΠΈ Π²ΡΠ΅Π³Π΄Π° Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ Β«operator new()Β», ΠΊΠΎΠ³Π΄Π° Π²ΠΈΠ΄ΠΈΡ Π² ΠΊΠΎΠ΄Π΅ Β«new TypeΒ».
ΠΠ±ΡΡΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ Β«operator new()Β» ΠΈ Β«operator new[]()Β» ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ (ΠΎΠ±Π΅ Π²ΡΠ·ΡΠ²Π°ΡΡ malloc()), Π½ΠΎ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ β ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ²ΠΎΠΈ, ΠΏΡΠΈΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠ°ΠΊ ΠΎΠ΄Π½Ρ ΠΏΠ°ΡΡ, ΡΠ°ΠΊ ΠΈ ΠΎΠ±Π΅, ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΡΡΡ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. Π‘ΡΠ°Π½Π΄Π°ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ (Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π½ΡΠΆΠ½ΠΎ Π°Π΄Π΅ΠΊΠ²Π°ΡΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠ°ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ).
ΠΡΠΎ Π΄Π°Π΅Ρ Π±ΠΎΠ³Π°ΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π»Ρ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π²Π°Ρ ΠΊΠΎΠ΄ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΏΠ°ΠΌΡΡΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅ΡΡΡ Β«Π½Π΅ ΡΠΎΠΉΒ» ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ Π»ΡΠ±ΡΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡΠΌ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, ΠΊ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΊΡΡΠΈ, ΠΏΠΎΡΡΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΈΠ»ΠΈ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΌΡ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎΠΌΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ Β«operator delete()Β» Π½Π΅ ΡΠΌΠΎΠ³Π»Π° ΡΠ°ΡΠΏΠΎΡΡΠ΄ΠΈΡΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠΌ Π΅ΠΉ Π°Π΄ΡΠ΅ΡΠΎΠΌ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π°Π²Π°ΡΠΈΠΉΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠΈΠ»Π°ΡΡ.
Π‘Π°ΠΌΠ°Ρ ΠΏΡΠΈΡΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΡΡΠΎΠ³ΠΎ ΡΠ°ΡΡΠΊΠ°Π·Π° β Π²Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Β«deleteΒ» Π²ΠΌΠ΅ΡΡΠΎ Β«delete[]Β» (ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ β ΡΠΎΠΆΠ΅) ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡ-ΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ. Π‘ΡΠ°Π½Π΄Π°ΡΡ Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ. ΠΠ°ΠΆΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π‘ΡΠ°Π½Π΄Π°ΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½ Π²ΡΠ΄Π°ΡΡ Π²Π°ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ Π°Π΄Π΅ΠΊΠ²Π°ΡΠ½ΡΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ. ΠΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΡΡΡΠ»Π°ΡΡΡΡ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ ΠΈ ΡΠΏΠΎΡΠ°Ρ , ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΡΠΌ β Π²Π½ΡΡΡΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ Π²ΡΠ΅ ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ. ΠΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ½ΡΡΠ°ΡΠΈΡΡΠ΅ΡΠ΅ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΠ΅ Π²Π°ΠΌΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.
ΠΠΎ Π²ΡΠΎΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ Π²ΠΈΠ΄Ρ Π²ΡΠ΅ Ρ ΠΎΡΠΎΡΠΎβ¦ Π½Π° ΡΡΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ° Π΄ΡΡΠ³ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Β«operator new()Β» ΠΈ Β«operator new[]()Β» ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π½Π° ΡΠ°Π·Π½ΡΡ ΠΊΡΡΠ°Ρ (Windows ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΡΡΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΡ). Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠΈΡΡ Π±Π»ΠΎΠΊ Β«Π½Π΅ Π² ΡΡΒ» ΠΊΡΡΡ?
ΠΡΡΠ°ΡΠΈ, ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Ρ Π½Π° ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΡΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ, Π²Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π½Π΅ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌΡΠΉ ΠΊΠΎΠ΄. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π½Π° ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Β«Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΒ», ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, ΠΏΡΠΈ ΡΠΌΠ΅Π½Π΅ Π²Π΅ΡΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ C++ runtime Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π±ΡΡΡ ΠΊΡΠ°ΠΉΠ½Π΅ Π½Π΅ΠΏΡΠΈΡΡΠ½ΠΎ ΡΠ΄ΠΈΠ²Π»Π΅Π½Ρ.
ΠΠ°ΠΊ Π±ΡΡΡ? Π‘ΠΌΠΈΡΠΈΡΡΡΡ, Π½Π΅ ΠΏΡΡΠ°ΡΡ Β«deleteΒ» ΠΈ Β«delete[]Β» ΠΈ ΡΠ°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅ β Π½Π΅ ΡΡΠ°ΡΠΈΡΡ Π·ΡΡ Π²ΡΠ΅ΠΌΡ Π½Π° Β«ΠΏΡΠ°Π²Π΄ΠΎΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅Β» ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠΊΠΎΠ±Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΏΡΡΠ°Π΅ΡΠ΅. ΠΠΎΠΊΠ° Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠΏΠΎΡΠΈΡΡ, Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π±ΡΠ΄ΡΡ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅, Π° Π΄Π»Ρ Π²Π°Ρ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΈ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ Π·Π°ΡΠ»ΡΠΆΠΈΡΡ ΠΏΡΠ΅ΠΌΠΈΡ ΠΠ°ΡΠ²ΠΈΠ½Π°.
ΠΠΌΠΈΡΡΠΈΠΉ ΠΠ΅ΡΠ΅ΡΡΠΊΠΎΠ²
ΠΠ΅ΠΏΠ°ΡΡΠ°ΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²
Π ΡΠ΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ delete ΠΈ delete
Delete: To completely erase something.
Remove: To put away. (but it hasn’t been erased.)
Clear: To free or rid something of another thing.
Delete: To completely erase something.
Remove: To put away. (but it hasn’t been erased.)
Clear: To free or rid something of another thing.
They all mean the same thing but delete is more something you say where it relates to computers.
I should delete these old files.
Remove and clear are pretty similar. Feel free to use either
Π‘ΠΈΠΌΠ²ΠΎΠ» ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΡΠΎΠ²Π΅Π½Ρ Π·Π½Π°Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠ΅Π³ΠΎ Π²Π°Ρ ΡΠ·ΡΠΊΠ° ΠΈ Π²Π°ΡΡ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΡ. ΠΡΠ±ΠΈΡΠ°Ρ Π²Π°Ρ ΡΡΠΎΠ²Π΅Π½Ρ Π·Π½Π°Π½ΠΈΡ ΡΠ·ΡΠΊΠ°, Π²Ρ Π³ΠΎΠ²ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΊΠ°ΠΊ ΠΈΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ, ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡ ΠΏΠΎΠ½ΡΡΡ.
ΠΠ½Π΅ ΡΡΡΠ΄Π½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ Π΄Π°ΠΆΠ΅ ΠΊΠΎΡΠΎΡΠΊΠΈΠ΅ ΠΎΡΠ²Π΅ΡΡ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅.
ΠΠΎΠ³Ρ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΏΡΠΎΡΡΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ ΠΏΡΠΎΡΡΡΠ΅ ΠΎΡΠ²Π΅ΡΡ.
ΠΠΎΠ³Ρ ΡΠΎΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π²ΠΈΠ΄Ρ ΠΎΠ±ΡΠΈΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ². ΠΠΎΠ½ΠΈΠΌΠ°Ρ ΠΎΡΠ²Π΅ΡΡ ΡΡΠ΅Π΄Π½Π΅ΠΉ Π΄Π»ΠΈΠ½Ρ ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ.
ΠΠΎΠ½ΠΈΠΌΠ°Ρ ΠΎΡΠ²Π΅ΡΡ Π»ΡΠ±ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ.


Π Π΅ΡΠ°ΠΉΡΠ΅ ΡΠ²ΠΎΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΎΡΠ΅ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ!
( 30 698 )





