2011-01-19 9 views
6

C99 [धारा 6.3.2.1/1] कहते हैंlvalue मूल्यांकन के बाद किसी ऑब्जेक्ट को निर्दिष्ट नहीं करता है?

एक lvalue एक वस्तु प्रकार या एक अधूरी शून्य के अलावा अन्य प्रकार के साथ एक अभिव्यक्ति है; यदि कोई लैवल्यू मूल्यांकन किए जाने पर ऑब्जेक्ट को निर्दिष्ट नहीं करता है, तो व्यवहार अव्यवस्थित है।

क्या में भाग बोल्ड मतलब है? क्या कोई इसे उदाहरण के साथ समझा सकता है?

उत्तर

7

अशक्त संकेत, संकेत स्वत: भंडारण अवधि जिसका जीवन पहले से ही मन में आ समाप्त हो गया है के साथ वस्तुओं के लिए वस्तुओं और संकेत पुनः आवंटित की जाती है। इन परिणामों को अमान्य अंतराल में संदर्भित करना; यदि आप भाग्यशाली हैं, और मनमाने ढंग से ढेर या भ्रष्टाचार ढेर करते हैं तो अपरिभाषित व्यवहार आप अक्सर सामना करेंगे।

5
#include <stdio.h> 

int* ptr; 

void f(void) { 
    int n = 1; 
    ptr = &n; 
} 

int main(void) { 
    f(); 
    // UB: *ptr is an lvalue that is not an object: 
    printf("%d\n", *ptr); 
    return 0; 
} 
संबंधित मुद्दे

 संबंधित मुद्दे