gcc
प्यार से मुझे यह त्रुटि देता है:
bst.c:33: error: invalid application of ‘sizeof’ to incomplete type ‘struct BSTNode’
क्या BSTnode अधूरा बनाता है? नीचे BSTnode के लिए प्रासंगिक संरचना परिभाषाएं दी गई हैं।
struct BSTnode{
struct BSTnode * left;
struct BSTnode * right;
struct hash minhash;
struct hash maxhash;
struct DHTid owner;
int misses;
};
हमारे पास कहाँ है:
struct hash{
int hash;
};
struct DHTid
{
int islocal;
unsigned long addr;
unsigned short port;
struct DHTnode * node;
};
और कई बार:
struct DHTnode{
int something;
};
संपादित करें: मेरे वास्तविक कोड में निम्नलिखित संरचना है:
struct DHTnode{...};
struct hash{...};
struct DHTid{...}; /*changed . to ; in pseudocode*/
struct BSTnode{...};
EDIT: user318466 ने एक लापता अर्धविराम को इंगित किया, लेकिन इसके साथ अभी भी अधिक गलत था।
उत्तर:
जवाब के लिए 9 № 1आपने प्रकार घोषित किया struct BSTnode
। आप आवेदन कर रहे हैं sizeof
टाइप करने के लिए struct BSTNode
। पूंजीकरण में अंतर पर ध्यान दें: n
तथा N
. struct BSTNode
बेशक, कंपाइलर अपूर्ण प्रकार के लिए पूरी तरह से अज्ञात है, जो कि यह आपको बता रहा है।
जवाब के लिए 2 № 2
एक लापता है ;
के अंत में:
struct DHTid{...}.
यह होना चाहिए:
struct DHTid{...};
जवाब के लिए 0 № 3
आपकी हेडर फाइलें शायद #define में से किसी एक की पहचान करें जिससे आप चाहते हैं कि आप कुछ न करें