का उपयोग करके संरचना तत्वों तक पहुंचने पर मुझे आश्चर्य हुआ जब निम्न प्रोग्राम क्रैश नहीं हुआ।पॉइंटर्स
typedef struct _x {
int a;
char b;
int c;
} x;
main() {
x *ptr = 0;
char *d = &ptr->b;
}
मेरी समझ के अनुसार ->
ऑपरेटर &
ऑपरेटर साथ-साथ उसका पूर्वता है। तो मुझे उम्मीद है कि जब हम नल पॉइंटर tr
को कम करने की कोशिश करेंगे तो प्रोग्राम नीचे दिए गए कथन पर दुर्घटनाग्रस्त हो जाएगा।
char *d = &ptr->b;
लेकिन कथन &ptr->b
एक मान्य पते का मूल्यांकन करता है। क्या कोई कृपया बता सकता है कि मैं कहां गलत हूं?
यह किसी भी तरह से 'ऑफसेटोफ़' मैक्रो के समान है। – ruslik