Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

प्रत्येक पंक्ति को C++ में क्रमबद्ध करने के लिए हटाए जाने वाले स्तंभों की गणना करें

C++ प्रोग्राम का असामान्य व्यवहार अक्सर प्रोग्राम क्रैश की ओर ले जाता है। आपको सेगमेंटेशन गलती, निरस्त, फ़्लोटिंग पॉइंट अपवाद इत्यादि जैसी समस्याओं का सामना करना पड़ सकता है। निम्नलिखित नमूना प्रोग्राम हैं जो सी ++ प्रोग्राम क्रैश के कारणों को समझने में आपकी सहायता कर सकते हैं।

अपवाद

सी ++ में अपवाद किसी प्रोग्राम की प्रतिक्रियाएं हैं जब यह असामान्य स्थिति का सामना करता है। ऐसे अपवादों के कारण प्रोग्राम क्रैश हो जाता है यदि उन्हें ट्राइ-कैच ब्लॉक का उपयोग करके ठीक से नियंत्रित नहीं किया जाता है। शून्य अपवाद से भाग देने के कारण निम्न प्रोग्राम क्रैश हो जाता है -

उदाहरण

#include <iostream>
int main(){
   int num1=10;
   int num2=0;
   int quotient=num1/num2;
   printf("\n Quotient is: %d",quotient);
   return 0;
}

आउटपुट

Floating point exception (core dumped)

बफ़र ओवरफ़्लो

बफर एक अस्थायी भंडारण क्षेत्र है। जब कोई प्रोग्राम बफ़र को डेटा लिखते समय उस आकार से अधिक हो जाता है जो बफ़र धारण कर सकता है, तो अतिरिक्त डेटा बफ़र की सीमा से बाहर चला जाता है। डेटा आसन्न स्मृति स्थानों को अधिलेखित कर देता है। निम्न प्रोग्राम अपना व्यवहार बदलता है जब इनपुट आकार से अधिक हो जाता है, चर संख्या हो सकती है।

उदाहरण

#include <iostream>
#include <string.h>
int main(){
   int num=100;
   std::cout<<"\nValue for num:"<<num;
   char c[2];
   strcpy(c,"abcdefghijklmnopqrstuvwxyz");
   std::cout<<"\nValue for c:"<<c;
   return 0;
}

आउटपुट

Value for num:100
Segmentation fault (core dumped)

स्टैक ओवरफ़्लो

स्टैक ओवरफ़्लो समस्या तब होती है जब कॉल स्टैक पॉइंटर स्टैक बाउंड से अधिक हो जाता है। स्टैक में सीमित मात्रा में स्थान होता है। जब कोई प्रोग्राम स्टैक पर उपलब्ध स्थान से अधिक स्थान का उपयोग करता है तो स्टैक को ओवरफ़्लो कहा जाता है और प्रोग्राम को क्रैश करने का कारण बनता है। सबसे आम कारण अनंत पुनरावृत्ति है।

निम्नलिखित प्रोग्राम में फ़ैक्टोरियल () फ़ंक्शन करने के लिए अनंत कॉल हैं। इस मामले में वापसी विवरण उचित नहीं है।

उदाहरण

#include <iostream>
#include <string.h>
int factorial(int num){
   if(num==0)
      return 1;
   else
      return(factorial(num));
}
int main(){
    int n=10;
   int fact=factorial(n);
   std::cout<<fact;
}

आउटपुट

Segmentation fault (core dumped)

विभाजन दोष

सेगमेंटेशन फॉल्ट या कोर डंप तब होता है जब कोई प्रोग्राम उन मेमोरी स्थानों तक पहुँचने का प्रयास करता है जो उससे संबंधित नहीं हैं। निम्नलिखित प्रोग्राम में, पॉइंटर स्ट्रिस इंक्रीमेंटिंग और मेमोरी को अनिश्चित काल तक जोड़ता है।

उदाहरण

#include <iostream>
int main(){
   char *str;
   char name[]="iostream";
   str=name;
   while(1)
      (*str++)='a';
}

आउटपुट

Segmentation fault (core dumped)

मेमोरी लीक

मेमोरी लीक तब होती है जब गतिशील रूप से आवंटित मेमोरी को कभी भी डिलीकेट नहीं किया जाता है। स्मृति को तब मुक्त किया जाना चाहिए जब वह उपयोग में न हो। यदि हम लगातार बार-बार मेमोरी आवंटित करते हैं, तो समय के साथ ये मेमोरी लीक बढ़ जाएगी और अंततः प्रोग्राम क्रैश हो जाएगा। नीचे दिए गए खराब कोड की पुनरावृत्ति मेमोरी लीक का कारण बनती है -

उदाहरण

#include <iostream>
int main(){
    int *node;
   node = (int *) malloc(9999999);
   // free(node);
}

  1. सी प्रोग्राम में दिए गए मैट्रिक्स में शून्यों की संख्या के आधार पर छांटे गए कॉलम का प्रिंट इंडेक्स।

    आकार एनएक्सएम की एक सरणी को देखते हुए जहां एन पंक्तियों की संख्या और एम कॉलम की संख्या है, और कार्य किसी भी कॉलम में मौजूद शून्य की संख्या के आधार पर सॉर्ट ऑपरेशन करने के बाद संबंधित मैट्रिक्स के प्रत्येक कॉलम में शून्य की संख्या को प्रिंट करना है। उदाहरण के लिए यदि 1सेंट कॉलम में 1 शून्य और 2nd .

  1. सी ++ प्रोग्राम प्रत्येक सीढ़ी में सीढ़ियों की संख्या और चरणों की संख्या की गणना करने के लिए

    मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है। बता दें, अमल एक बहुमंजिला इमारत के अंदर सीढ़ियां चढ़ता है। हर बार जब वह चढ़ता है, तो 1 से गिनना शुरू करें। उदाहरण के लिए, यदि वह 3 कदम और 4 कदम के साथ दो सीढ़ियां चढ़ता है, तो वह 1, 2, 3, 1, 2, 3, 4 जैसी संख्याएं बोलेगा। सरणी A में, संख्याएँ अमल द

  1. सी ++ प्रोग्राम डोडेकैगन की संख्या गिनने के लिए जिसे हम आकार डी बना सकते हैं

    मान लीजिए कि हमारे पास एक संख्या d है। विचार करें कि अनंत संख्या में वर्गाकार टाइलें हैं और भुजाओं की लंबाई के साथ नियमित त्रिकोणीय टाइलें हैं। हमें यह पता लगाना है कि इन टाइलों का उपयोग करके हम कितने तरीकों से नियमित डोडेकागन (12-पक्षीय बहुभुज) बना सकते हैं। यदि उत्तर बहुत बड़ा है, तो परिणाम मोड 99