मुझे इंटरनेट के माध्यम से पैकेट स्थानांतरित करने की आवश्यकता है जिसका लंबाई गतिशील होना चाहिए।सी: गतिशील रूप से आकार वाले structs के लिए अनुशंसित शैली
struct packet
{
int id;
int filename_len;
char filename[];
};
समस्या यह है कि शून्य-लंबाई वाले सरणी आईएसओ-अनुरूप नहीं हैं।
क्या मुझे इसके बजाय char filename[1];
का उपयोग करना चाहिए? लेकिन फिर sizeof(struct packet)
अब सही मूल्य वापस नहीं करेगा।
आकार के साथ मेरा मतलब केवल संरचना का आकार था, गतिशील क्षेत्र नहीं, क्योंकि यूडीपी पैकेट प्राप्त करते समय मैंने पहली बार उस संरचना में पढ़ा जिसमें गतिशील क्षेत्र का आकार होता है, और फिर मैं गतिशील क्षेत्र पढ़ता हूं। – codymanix