कास्टिंग मैं एक लिंक्ड सूची में टाइप स्ट्रक्चर व्यक्ति का डेटा पास कर रहा हूं, इसलिए प्रत्येक नोड का डेटा पॉइंटर एक स्ट्रक्चर व्यक्ति को इंगित करता है।शून्य से * संरचना
struct Person {
char name[16];
char text[24];
};
मैं सूची पार और पार के लिए
traverse(&list, &print);
प्रोटोटाइप को फोन करके प्रत्येक नोड में नाम/पाठ मुद्रित करने के लिए कोशिश कर रहा हूँ है:
void traverseList(struct List *list, void (*f)(void *));
सूची के रूप में परिभाषित किया गया है:
struct List {
struct Node *head;
};
मेरा पी रिंट फ़ंक्शन एक शून्य * डेटा स्वीकार करता है:
print(void *data) { .... }
मुझे पता है कि मुझे डेटा को स्ट्रक्चर व्यक्ति को सही करना है, सही?
struct Person *person = (struct Person *)data;
printf("%s", person->name);
मुझे पता है कि यह पर्याप्त नहीं है क्योंकि मुझे "असंगत सूचक प्रकार से प्रारंभिक" चेतावनी मिल रही है। मैं इस मामले में एक शून्य * सफलतापूर्वक कैसे डाल सकता हूं? धन्यवाद।
'traverse' के प्रोटोटाइप क्या है? और किस प्रकार 'सूची' है? –
आप यह जांचना चाहेंगे कि आप कैसे जा रहे हैं, और आप वास्तव में प्रिंट का उपयोग कैसे कर रहे हैं। जो कुछ भी आपने दिखाया वह सब कुछ मिल रहा है। – unxnut
@ValeriAtamaniouk मैंने उन लोगों को शामिल करने के लिए अपना प्रश्न संपादित किया है। – user1889966