c - Getting the address of a statically allocated array into a pointer inside a struct -
मेरे कोड का सरलीकृत संस्करण निम्न है:
struct args {int p; Int * A; }; टाइपिप्फ़फ़ स्टार्ट सॉर्ट_args sort_args; शून्य func (int A [], int p) {args new_struct = {& amp; A, p}; Args * args_ptr = और amp; new_struct; } मैं एक स्थिर रूप से परिवर्तित करने की कोशिश कर रहा हूं (मुझे लगता है कि शब्द है) एक सूचक में आवंटित सरणी है, लेकिन संकलक इन चेतावनियों को फेंक रहा है:
चेतावनी: आरम्भिकरण एक कलाकार के बिना पॉइंटर से पूर्णांक बनाता है [डिफ़ॉल्ट रूप से सक्षम] आरग new_struct = {& amp; A, p; r};
चेतावनी: (एक नया ??? ????) [डिफ़ॉल्ट रूप से सक्षम] चेतावनी: आरंभीकरण एक कलाकार के बिना पूर्णांक से संकेतक बनाता है [डिफ़ॉल्ट रूप से सक्षम] चेतावनी: (एक नया नवीनीकरण के लिए आरंभीकरण के करीब) एईएफ़ [डिफ़ॉल्ट रूप से सक्षम है] < / P>
मैं क्या कर रहा हूँ गलत?
। <पूर्व> आर्ग्स new_struct = {& amp; A, p}; = & gt; <पूर्व> args new_struct = {p, A}; आपको स्ट्रैक्ट्स घोषणापत्र में दिखने के लिए किसी स्ट्रेट के सदस्यों को इनिशियलाइज़ करने की आवश्यकता है, या आपको इस तरह नामित सिंटैक्स का उपयोग करने की आवश्यकता है:
आर्ग्स new_struct = {.A = ए,। पी = पी}; लेकिन आमतौर पर इसका उपयोग केवल बड़े स्ट्रेंक्ट्स के साथ कोड स्पष्टता में सुधार करने के लिए किया जाता है, जिनके अधिक सदस्य हैं।
Comments
Post a Comment