समझने की कोशिश कर रहा है कि सूचक वास्तव में क्या काम करता है? क्या यह कोड सेगमेंट में पता है जहां फ़ंक्शन रहता है?फ़ंक्शन पॉइंटर का पॉइंटर मान क्या दर्शाता है?
पूर्व के लिए: कोड के इस टुकड़े:
#include <stdio.h>
void foo(void)
{
}
int main(void)
{
int a = 10;
printf("a's address: %p\n", &a);
printf("foo's address: %p\n", foo);
return 0;
}
... प्रिंट इस:
[sh/prog-exercises/adam]:./a.out
a's address: 0xbfffb414
foo's address: 0x8048430
मुझे लगता है कि मैं एक छोटे से कैसे वास्तव में ढेर के साथ उलझन में हूँ/एक प्रक्रिया के ढेर के साथ संबंधित है ईएलएफ डेटा सेगमेंट/कोड सेगमेंट। कोई सहायक पॉइंटर्स वास्तव में स्वागत किया जाएगा। इसके अलावा, मेरा पहला सवाल है, तो कृपया नम्र रहो, वास्तव में सीखने की कोशिश कर रहा हूं। धन्यवाद!
के अंतरंग विवरण जानने की कोशिश कर रहे हैं, तो यहां आउटपुट उस स्थान का प्रतिनिधित्व करता है जहां यह विशेष फ़ंक्शन कोड सेगमेंट के हिस्से के रूप में लोड किया गया है? क्या सी प्रोग्राम को डेटा सेगमेंट प्रिंट करने का कोई तरीका है, कोड सेगमेंट स्टार्ट/एंड पतों? – helpmelearn
@helpmelearn: हाँ, वह पता है जहां फ़ंक्शन प्रारंभ होता है। मुझे सेगमेंट पते खोजने के लिए समाधान के बारे में पता नहीं है और मुझे लगता है कि यह कार्यान्वयन-निर्भर होगा। शायद कुछ उपयोगिता कार्यक्रम है जो किसी भी प्रक्रिया के लिए ऐसा कर सकता है। – sharptooth