यहाँ प्रश्न में कोड हैसी सूचक अंकगणित sizeof (struct)
#include <stdio.h>
struct test {
unsigned char t;
unsigned short u;
unsigned char v;
};
int main()
{
struct test * a = (void *) 0x1000;
printf("%x %p %p\n",
sizeof(struct test),
a + sizeof(struct test),
a - sizeof(struct test));
return 0;
}
sizeof (struct परीक्षण) 6 प्रिंट, तो मैं उम्मीद करेंगे देखने के लिए:
6 0xffa 0x1006
इसके बजाय मुझे
6 0x1024 0xfdc
पिछली बार मैं सी हेक्ड, 0x24, या 36, 6 के बराबर नहीं था। यह किसी भी चीज़ से गठबंधन नहीं है जिसे मैं बता सकता हूं। मैं पूरी तरह से नुकसान में हूँ।
क्या कोई मुझे बता सकता है कि मुझे ये मूल्य क्यों मिल रहे हैं?
आप शायद यह कहना चाहते हैं कि '* (ए + एक्स)' 'x [x]' या '(a + x)' जैसा ही है 'और एक [x] 'जैसा ही है। –