For Android device For iOS device
១០
មីនា

ស្វែងយល់ពី Dangling Pointer និង Memory leak

ជា​ទូទៅ computer programming ប្រើ​ប្រាស់ memory របស់ RAM ដើម្បី​រក្សាទុក​ទិន្នន័យ​ជាបណ្ដោះអាសន្ន​ក្នុង​ទីតាំងជាក់លាក់​ណាមួយ​ដោយមាន address ជាសម្គាល់ ហើយ​ទិន្នន័យ​ទាំងនោះ​ក៏​នឹងបាត់បង់ទៅវិញ​ផងដែរ​ក្រោយពី​ការងារ​របស់ program នោះ​ត្រូវបាន​បញ្ចប់ ហេតុដូច្នេះហើយបានជា RAM អាច​រក្សាទុក​ទិន្នន័យ​ដែល​ដំណើការដោយ programs ផ្សេងៗ​ទៀតបាន ។

ពាក់ព័ន្ធនឹងរបៀបនៃការ​រក្សាទុក​ទិន្នន័យ​នៅ​ក្នុង RAM ខ្ញុំ​ក៏​ចង់​បង្ហាញ​ដល់ប្អូនៗ​ដែល​ទើបតែ​សិក្សា​ភាសា Programming ឲ្យ​ដឹងថាអ្វីទៅ​ដែល​ហៅ dangling pointer និង memory leak ។ នៅ​ក្នុង​អត្ថបទនេះ​ខ្ញុំ​គិតថាភាសា Propramming ដំបូង​ដែល​អ្នក Programmers ទូទៅ​គួរតែរៀនដំបូងគេបង្អស់គឺភាសា C ឬ​ក៏​យ៉ាង​ហោចណាស់ C++ ដើម្បី​ជាគ្រឺះ​សម្រាប់​ប្អូនៗ​អាចមាន​សមត្ថភាព​ស្វ័យ​សិក្សា​ទៅលើ​ភាសា​កម្រិត high levels ផ្សេងៗ​ទៀតបានងាយ ។

♦ អ្វីទៅជា Dangling Pointer?

ជា​ទូទៅ​នៅ​ក្នុង​ភាសា C ឬ C++ គេ​ប្រើ​ប្រាស់ Pointer ដើម្បី​រក្សាទុក​នូវ address របស់ memory នៃ​ទិន្នន័យ​ណាមួយ​

​នៅពេល​ដែល​​ទិន្នន័យ​ដែល​រក្សាទុក​ក្នុង​ memory នោះ​ត្រូវបាន​សំអាត ឬ​លប់ចេញ (មានន័យថា​គ្មាន​តម្លៃ​ណាមួយ​ដែល​រក្សាទុក​នៅ​ក្នុង memory នោះទៀតទេ) ហើយ pointer នៅតែចង្អុល​ទៅកាន់​ទីតាំង memory ដែល​គ្មាន​តម្លៃ នោះ pointer មួយហ្នឹងត្រូវ​បានហៅថា dangling pointer ។ រីឯ ទីតាំង memory ដែល​ត្រូវបាន​ចង្អុលដោយ dangling pointer ត្រូវបាន​ហៅថា dangling reference ។

នៅ​ក្នុង​កូដ​ខាងលើ ptr គឺជា pointer variable ដែល​បង្កើត​ឡើង ដើម្បី​រក្សាទុក​នូវ address របស់ memory នៃទីតាំង​ណាមួយ​ដែល​នឹងផ្ទុក​ទិន្នន័យ​ប្រភេទ integer ។ ចុងក្រោយ​នៃ​ការងារ​របស់ function () ទិន្នន័យ​ដែល​បាន​រក្សាទុក​ក្នុង address នោះ ក៏​ត្រូវបាន​សំអាត ឬ​ក៏​លប់ចេញ ប៉ុន្តែ function () មិនបាន​ប្ដូរទិសដៅរបស់ ptr pointer ឲ្យ​ចង្អុល​ទៅកាន់​ទីតាំងរបស់ memory ណា​ផ្សេងទៀត​ឡើយ ដូច្នេះ ptr គឺជា dangling pointer ។

ជា​ទូទៅ ដើម្បី​ជៀសពីការ error ដោយមូលហេតុ dangling pointer យើងគប្បី​កំណត់​តម្លៃ NULL ទៅកាន់ pointer ក្រោយពេល​ដែល pointer នោះក្លាយជា dangling pointer ។

♦ អ្វីទៅហៅថា Memory Leak?

Memory leak សំដៅ​ទៅលើ memory ដែល​ទិន្នន័យ​របស់វាមិន​ត្រូវបាន​លប់ចេញ ហើយ​ទិន្នន័យ​ដែល​ផ្ទុក​ក្នុង memory នោះពុំមាន​លទ្ធភាព​ណាមួយ​ដែល​យើងអាចហៅយកទៅ​ប្រើ​ប្រាស់​អ្វីបានឡើយ ។

កូដ​ខាងលើ​បង្ហាញ​ថា ptr ជា pointer variable ដែល​ត្រូវបាន​បង្កើត​ចោលនៅ​ក្នុង RAM ហើយយើងពុំបាន​ប្រើ​ប្រាស់​វាទាល់តែសោះ ដូច្នេះ RAM ត្រូវបាន​ចំណាយ memory space ដោយឥតប្រយោជន៍ ៕

→ ចុចទីនេះ ដើម្បី​មើល​លក្ខណៈ​ពិសេស​កម្មវិធី ANTLearner និងរបៀប​ប្រើ​ប្រាស់​កម្មវិធី​នេះ

♦ ​ប្រសិនបើ​មានចង្ងល់ ឬ​មាន​បញ្ហា​លើការ​ដំឡើង​កម្មវិធី​ផ្សេងៗ​ដែល​បង្កើត​ដោយអាន-ANT ដូច​ផ្ញើ​សារចូល Page: https://www.facebook.com/ANTTechnologyTrainingCenter

♦♦ លេខ​ទូរសព្ទ​ទំនាក់ទំនង ០១០/០១៦ ៦៦៦ ៦៥៣

💒ទីតាំង​ #86B ​ផ្លូវ​ 313 កែង 606 សង្កាត់បឹងកក់២ ទួលគោក

https://maps.app.goo.gl/cdi3hTED27tbHBaB9

មតិ និង​យោបល់​ទៅលើ​អត្ថបទ​នេះ (តាម Facebook)

ខាងក្រោម​នេះ​ជា​យោបល់​ផ្សេងៗ​របស់​អ្នកទស្សនា