পয়েন্টারগুলির সাথে বেশ কয়েকটি সমস্যা রয়েছে:
- Aliasing বিভিন্ন নাম / ভেরিয়েবল ব্যবহার করে কোনও জিনিসের মান পরিবর্তন করার সম্ভাবনা।
- অ-লোকালিটি কোনও প্রেক্ষাপটে কোনও বস্তুর মান পরিবর্তনের সম্ভাবনা যার সাথে এটি ঘোষিত হয় (রেফারেন্স দ্বারা পাস হওয়া যুক্তিগুলির সাথেও এটি ঘটে)।
- লাইফটাইম মেলেনি ম্যাচ পয়েন্টারের জীবদ্দশায় যে বিষয়টির দিকে লক্ষ্য করা যায় তার জীবনকাল পৃথক হতে পারে এবং এটি অবৈধ রেফারেন্স (সেগফুল্টস) বা আবর্জনা হতে পারে।
- পয়েন্টার গাণিতিক । কিছু প্রোগ্রামিং ল্যাঙ্গুয়েজ পয়েন্টারগুলিকে পূর্ণসংখ্যার হিসাবে ম্যানিপুলেশন করতে দেয় এবং এর অর্থ পয়েন্টারগুলি যে কোনও জায়গায় পয়েন্ট করতে পারে (কোনও বাগ যখন উপস্থিত থাকে তখন সবচেয়ে অপ্রত্যাশিত স্থানগুলি সহ)। পয়েন্টার গাণিতিকটি সঠিকভাবে ব্যবহার করতে, একজন প্রোগ্রামারকে অবশ্যই নির্দেশিত বস্তুর মেমরির আকারগুলি সম্পর্কে সচেতন হতে হবে, এবং এটি সম্পর্কে আরও ভাবতে হবে।
- টাইপ কাস্টস এক প্রকার থেকে অন্য প্রকারে একটি পয়েন্টার cast ালাইয়ের ক্ষমতা কোনও বস্তুর মেমরির উদ্দেশ্য থেকে পৃথক করে ওভাররাইট করার অনুমতি দেয়।
এজন্য পয়েন্টার ব্যবহার করার সময় কোনও প্রোগ্রামারকে অবশ্যই আরও ভালভাবে চিন্তা করতে হবে ( বিমূর্তির দুটি স্তর সম্পর্কে আমি জানি না )। এটি একজন নবজাতকের দ্বারা করা সাধারণ ভুলগুলির একটি উদাহরণ:
Pair* make_pair(int a, int b)
{
Pair p;
p.a = a;
p.b = b;
return &p;
}
নোট করুন যে উপরের মতো কোডগুলি সেই ভাষাগুলিতে পুরোপুরি যুক্তিসঙ্গত যাগুলির মধ্যে পয়েন্টারগুলির ধারণা নেই তবে নামগুলির একটি (রেফারেন্স), অবজেক্ট এবং মানগুলি কার্যকরী প্রোগ্রামিং ভাষা হিসাবে এবং আবর্জনা সংগ্রহের ভাষা (জাভা, পাইথন) রয়েছে ।
পুনরাবৃত্ত ফাংশনগুলির সাথে অসুবিধা তখন ঘটে যখন পর্যাপ্ত গাণিতিক পটভূমি ব্যতীত লোকেরা (যেখানে পুনরাবৃত্তি সাধারণ এবং প্রয়োজনীয় জ্ঞান) এই ভেবে ফাংশনটি এর আগে যতবার ডাকা হয়েছে তার উপর নির্ভর করে ভিন্নভাবে আচরণ করবে তা ভেবে তাদের কাছে যাওয়ার চেষ্টা করে । সমস্যাটি ক্রমবর্ধমান কারণ পুনরাবৃত্ত ফাংশনগুলি সত্যই পারে এমনভাবে তৈরি করা পারে যেগুলি বোঝার জন্য আপনাকে সেই পদ্ধতিতে ভাবতে হবে ।
লাল-কালো গাছের পদ্ধতিগত বাস্তবায়নের মতো, পয়েন্টারগুলির চারপাশে পাসের সাথে পুনরাবৃত্ত ফাংশনগুলির কথা চিন্তা করুন যেখানে স্থানে ডেটা কাঠামো পরিবর্তিত হয়; চেয়ে আমার মনে হয় আরো কঠিন কিছু একটি কার্মিক সহযোগীর ।
এটি প্রশ্নের মধ্যে উল্লেখ করা হয়নি, তবে অন্যান্য গুরুত্বপূর্ণ বিষয় যা নিয়ে নবীনদের সমস্যা হয় সম্মতি ।
যেমনটি অন্যরা উল্লেখ করেছেন, কিছু প্রোগ্রামিং ভাষার কন্সট্রাক্টসগুলির সাথে একটি অতিরিক্ত, অ-ধারণামূলক সমস্যা রয়েছে: এটি হ'ল আমরা যদি বুঝতে পারি তবেও এই কনস্ট্রাক্টগুলির সাথে সহজ এবং সৎ ভুলগুলি ডিবাগ করা অত্যন্ত কঠিন can