কম্পিউটার টিউটোরিয়াল

C++ প্রোগ্রাম ক্র্যাশ হওয়ার কারণ ও উদাহরণ

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);  // মিসিং → লিক
}

সময়ের সাথে লিক বাড়ে প্রোগ্রাম ক্র্যাশ করে।

  1. C প্রোগ্রামে ম্যাট্রিক্সের কলামগুলোকে শূন্যের সংখ্যা অনুযায়ী সর্ট করা

  2. C++ প্রোগ্রাম: n কে ১ করার ন্যূনতম অপারেশন (২,৩,৫ দিয়ে ভাগ)

  3. C++ প্রোগ্রাম: সিডি কাউন্ট ও প্রতিটি সিডির ধাপ সংখ্যা

  4. C++ প্রোগ্রাম: দিয়ে দেয়া আকারের ডোডেকাগন बनाने के तरीক সংখ্যা গণনা