c - g_strduping a char array member element -
टाइपिंगफ़ाइल संरचना {char name [10]; } ए; एक * inst = get_instance_of_A (); Char * str = g_strdup (inst- & gt; नाम);
अंतिम पंक्ति संकलन नहीं करती है मैंने भी भाग्य के साथ & amp; (inst-> नाम) की कोशिश की थी मुझे जो त्रुटि मिलती है वह है:
त्रुटि: चार संरचना प्रकार नहीं हैं।
मैं समझता हूँ कि चार [] और चार * अलग-अलग प्रकार भिन्न हैं लेकिन g_strdup को सी स्ट्रिंग की प्रारंभिक स्थिति नहीं लेनी चाहिए और इसे धोखा देना चाहिए? यदि मैं निम्नलिखित करता हूं तो यह काम करता है:
चार अस्थायी [10]; strncpy (अस्थायी, inst- & gt; नाम, 9); Char * str = g_strdup (temp);
मैं एक स्थानीय चार सरणी प्रतिलिपि बनाने के बिना क्या करने की कोशिश कर रहा हूं? मुझे लगता है कि मैं मुट्ठी परिदृश्य में सही ढंग से नहीं गुजर रहा हूं क्योंकि दोनों मामलों में जी_स्ट्रूडअप को चार सरणी पारित किया जा रहा है।
मुझे नहीं लगता कि आपकी समस्या झूठ है जहां आपको लगता है कि यह ऐसा करता है। gchar
और char
सभी उद्देश्यों और प्रयोजनों के लिए हैं उदाहरण के लिए, यह कोड मेरे लिए ठीक काम करता है:
#include & lt; glib.h & gt; टाइपिप्फ़िफ स्ट्रक्चर {चार नाम [10]; } ए; एक वैश्विक_ए = {"यहां नाम"}; A * get_instance_of_A (शून्य) {वापसी & amp; वैश्विक_ए; } Int main (int argc, char ** argv) {const a * inst = get_instance_of_A (); Char * str = g_strdup (inst- & gt; नाम); G_print ("% s \ n", str); वापसी 0; }
Comments
Post a Comment