C++ में segmentation fault (सेग्मेंटेशन फॉल्ट) क्या है और इसे कैसे ठीक करें?
सभी को नमस्ते! मैंने अभी-अभी C++ सीखना शुरू किया है और मुझे लगातार "Segmentation fault" (या "Segfault") एरर आ रही है। प्रोग्राम बस क्रैश हो जाता है, और मुझे समझ नहीं आता क्यों। यहाँ मेरे कोड का एक उदाहरण है:
```cpp
#include
using namespace std;
int main() {
int* ptr;
*ptr = 10; // यहाँ segmentation fault होता है
cout << *ptr << endl;
return 0;
}
```
मैंने पॉइंटर `ptr` घोषित किया, लेकिन इसे कोई एड्रेस असाइन नहीं किया। जब मैं इस पॉइंटर पर वैल्यू 10 लिखने की कोशिश करता हूँ, तो प्रोग्राम क्रैश हो जाता है। ऐसा क्यों होता है? मैंने सोचा था कि पॉइंटर सिर्फ एक वेरिएबल है जो एड्रेस स्टोर करता है, और मैं इसमें एक नंबर लिख सकता हूँ।
एक और उदाहरण जो मेरे लिए काम नहीं करता:
```cpp
#include
using namespace std;
int main() {
int arr[5] = {1, 2, 3, 4, 5};
for (int i = 0; i <= 5; i++) { // एरर: i <= 5, जबकि i < 5 होना चाहिए
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
```
यहाँ प्रोग्राम कभी-कभी क्रैश होता है, और कभी-कभी गार्बेज आउटपुट देता है। मैंने सुना है कि यह भी segmentation से संबंधित है।