এর সীমার বাইরে কোনও অ্যারে অ্যাক্সেস করা কতটা বিপজ্জনক (সি তে)? এটি কখনও কখনও ঘটতে পারে যে আমি অ্যারের বাইরে থেকে পড়েছি (আমি এখন বুঝতে পারি তারপরে আমি আমার প্রোগ্রামের অন্য কোনও অংশ বা এমনকি এর বাইরেও ব্যবহৃত মেমরি অ্যাক্সেস করতে পারি) বা অ্যারের বাইরে কোনও সূচকে একটি মান সেট করার চেষ্টা করছি। প্রোগ্রামটি কখনও কখনও ক্র্যাশ হয় তবে কখনও কখনও কেবল চলে, কেবল অপ্রত্যাশিত ফলাফল দেয়।
এখন আমি যা জানতে চাই তা সত্যিই কতটা বিপজ্জনক? যদি এটি আমার প্রোগ্রামটির ক্ষতি করে তবে এটি এতটা খারাপ নয়। অন্যদিকে যদি এটি আমার প্রোগ্রামের বাইরে কিছু ভেঙে যায়, কারণ আমি একরকম কিছু সম্পূর্ণ সম্পর্কযুক্ত মেমরি অ্যাক্সেস করতে সক্ষম হয়েছি তবে এটি খুব খারাপ, আমি কল্পনা করি। আমি প্রচুর 'কিছু ঘটতে পারে', 'বিভাজনটি সবচেয়ে কম খারাপ সমস্যা হতে পারে' পড়েছি , 'আপনার হার্ড ডিস্কটি গোলাপী হতে পারে এবং ইউনিকর্নগুলি আপনার উইন্ডোর নীচে গান করতে পারে', যা দুর্দান্ত, তবে আসলে কী বিপদ?
আমার প্রশ্নগুলো:
- অ্যারের বাইরের দিক থেকে মানগুলি পড়া কি আমার প্রোগ্রামের বাইরে কিছু ক্ষতি করতে পারে? আমি কল্পনা করব যে কেবল জিনিসগুলি দেখলে কিছুই বদলায় না, বা উদাহরণস্বরূপ আমি যে ফাইলটি পৌঁছলাম তার 'শেষবারের মতো খোলা' বৈশিষ্ট্যটি পরিবর্তন করবে?
- অ্যারে এর বাইরে মূল্য নির্ধারণ করা কি আমার প্রোগ্রামের বাইরে কিছু ক্ষতি করতে পারে? এই স্ট্যাক ওভারফ্লো প্রশ্ন থেকে আমি জড়ো করেছি যে কোনও মেমরির অবস্থান অ্যাক্সেস করা সম্ভব, কোনও সুরক্ষার গ্যারান্টি নেই।
- আমি এখন এক্সকোডের মধ্যে থেকে আমার ছোট প্রোগ্রামগুলি পরিচালনা করি। এটি কি আমার প্রোগ্রামের চারপাশে এমন কিছু অতিরিক্ত সুরক্ষা সরবরাহ করে যেখানে এটি নিজের স্মৃতির বাইরে পৌঁছতে পারে না? এটি এক্সকোডের ক্ষতি করতে পারে?
- কীভাবে আমার সহজাত বগি কোডটি নিরাপদে চালানো যায় সে সম্পর্কে কোনও প্রস্তাবনা?
আমি ওএসএক্স 10.7, এক্সকোড 4.6 ব্যবহার করি।