C++ প্রোগ্রাম অস্বাভাবিক আচরণের কারণে ক্র্যাশ হতে পারে। সাধারণ কারণগুলো নিচে দেওয়া হলো:
১. এক্সসেপশন (Exceptions)
অ্যাবনরমাল কন্ডিশন হ্যান্ডেল না করলে ক্র্যাশ হয়। যেমন ডিভাইড বাই জিরো।
int main() {
int num1=10, num2=0;
int quotient = num1/num2; // Floating point exception
return 0;
}
আউটপুট: Floating point exception (core dumped)
২. বাফার ওভারফ্লো (Buffer Overflow)
বাফারের ক্যাপাসিটি অতিক্রম করলে অ্যাসেসিবল মেমরি ওভাররাইট হয়।
int main() {
int num=100;
char c[2];
strcpy(c, "abcdefghijklmnopqrstuvwxyz"); // Segmentation fault
return 0;
}
আউটপুট: Segmentation fault (core dumped)
৩. স্ট্যাক ওভারফ্লো (Stack Overflow)
অনন্ত রিকার্সন বা অতিরিক্ত স্ট্যাক ব্যবহার।
int factorial(int n) {
if(n==0) return 1;
return factorial(n); // ভুল রিটার্ন, ইনফিনিট রিকার্সন
}
আউটপুট: Segmentation fault (core dumped)
৪. সেগমেন্টেশন ফল্ট (Segmentation Fault)
অননুমোদিত মেমরি অ্যাক্সেস।
int main() {
char *str, name[]="iostream";
str = name;
while(1) (*str++) = 'a'; // বাউন্ড চেক ছাড়া রাইট
}
আউটপুট: Segmentation fault (core dumped)
৫. মেমরি লিক (Memory Leaks)
ডাইনামিক্যালি এলোকেটেড মেমরি ফ্রি না করলে।
int main() {
int *node = (int*)malloc(9999999);
// free(node); // মিসিং → লিক
}
সময়ের সাথে লিক বাড়ে প্রোগ্রাম ক্র্যাশ করে।