मैं structs की एक सरणी शुरू करने की कोशिश कर रहा हूं। structs उन में समारोह संकेत दिए गए है और इस तरह के रूप में परिभाषित कर रहे हैं: मैं एक सरल ट्यूटोरियल का उपयोग समारोह संकेत परिभाषितउनमें फंक्शन पॉइंटर्स के साथ structs की एक सरणी प्रारंभ करें C
infosection section[] = {
("Software", *SoftwarePtr),
("Hardware", *HardwarePtr),
}
:
typedef struct{
char str[512];
char *fptr;
} infosection;
तो मैं एक सरणी बनाने के लिए प्रयास करें। समारोह सॉफ्टवेयर रिटर्न एक पूर्णांक
int (*SoftwarePtr)()=NULL;
SoftwarePtr = &Software;
मेरा प्रश्न चेतावनी मैं संकलन पर मिलता है के बारे में है।
आरंभ करने में कोई डाली
चेतावनी संदर्भ खंड सरणी में लाइनों के बिना सूचक से पूर्णांक बनाता है।
- */&/न कर रहा हूँ सूचक के लिए मैं हर के संयोजन की कोशिश की है और मैं अभी भी एक ही चेतावनी प्राप्त करने के लिए लग रहे हैं मैं गलत इस्तेमाल कर रहा हूँ के बारे में पता:
तो मैं दो शक है प्रत्येक का अर्थ, बस यह सुनिश्चित करें कि वे इस विशेष उदाहरण में कैसे लागू होते हैं।
मैं एक सरणी में
infosection struct
का एक उदाहरण घोषणा कर सकते हैं के रूप में मैं यहाँ क्यों है? मैं कई उदाहरण हैं, जहां लोगों की घोषणा देखा है उनके एकfor loop
मेंarray of struct
, हालांकि मेरी अंतिम उत्पाद structs की एक लंबी सूची है कि में निहित करने की आवश्यकता है सरणी। मैं अपना कोडportable
बनाना चाहता हूं जैसे किadd structs
(स्ट्रिंग्स जो फ़ंक्शंस के साथ मेल खाते हैं) एक आसान सूची-जैसी फैशन में देखे जा सकते हैं। सरणीinfosection section[]; section[0].str="software"; section[0].fptr=SoftwarePtr;
बस स्पष्ट करने के लिए का एक उदाहरण घोषित करने के लिए इस एक ही रास्ता है, मैं structs
, array of structs
, और function pointers
पर काफी अनुसंधान के एक बिट किया है। ऐसा लगता है कि 3 का संयोजन परेशानी पैदा कर रहा है।
मैंने सोचा कि फ़ंक्शन पॉइंटर्स शून्य *() थे। – Jiminion
@ जिम मैं यहां पढ़ता हूं: http://www.newty.de/fpt/fpt.html#defi जो फ़ंक्शन पॉइंटर की फ़ंक्शन के रिटर्न प्रकार के साथ घोषित करने की आवश्यकता को इंगित करता है ... –
'char * fptr; 'यह' char * 'के बीच फ़ंक्शन पॉइंटर और रूपांतरण नहीं है और फ़ंक्शन पॉइंटर अच्छी तरह से परिभाषित नहीं हैं – Lundin