चार सरणी [sizeof (संदेश)] के बीच अंतर; बनाम चार * सरणी = नए चार [sizeof (संदेश)];

वोट
0

मैं पोर्टेबल पुस्तकालय कि esp32 में इस्तेमाल किया जा सकता बनाने के लिए कोशिश कर रहा हूँ। अभी मैं समारोह है कि एक चार * करने के लिए एक struct धर्मान्तरित है। मैं पॉप्युलेट struct संदेश और उसके बाद कार्य करें:

memcpy(array,&message,sizeof(Message));

बाद में मैं एक सॉकेट को यह चार * भेजने के दूसरे पक्ष में इसे प्राप्त करने और struct फिर से संगठित करना चाहते हैं। क्या यह संभव है ? इसके अलावा, एक और सवाल मैं है:

struct Header{
    uint32_t source_id;
    uint32_t destinatary_id;
    uint32_t message_type;
};

struct Data {
    uint32_t dataSize;
    uint8_t* data;
};

struct Message{
    Header header;
    Data data;
    uint32_t timestamp;
};

char* array = new char[sizeof(Message)];
char array2[sizeof(Message)];

उन दोनों के बीच क्या अंतर है? सरणी एक सूचक है और array2 एक सरणी है, लेकिन क्योंकि एक बार मैं समारोह इसे करने के लिए सूचक हटा दी जाती है के दायरे से बाहर निकलना मैं इस समारोह में array2 उपयोग नहीं कर सकते।

09/10/2019 को 12:59
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
0

मैं एक सॉकेट को यह चार * भेजने के दूसरे पक्ष में इसे प्राप्त करने और struct फिर से संगठित करना चाहते हैं। क्या यह संभव है ?

हाँ। हो सकता है। तो आप लक्ष्य प्रणाली हो की पेशकश की है कि ऐसा करने के लिए एपीआई से परामर्श करना चाहिए स्टैंडर्ड सी ++ लेकिन एक सॉकेट, या किसी अन्य नेटवर्क संचार एपीआई नहीं है,।

यह भी ध्यान रखें कि संदेश एक सूचक जो एक प्रणाली है जो स्मृति यह इशारा कर रही है करने के लिए पहुँच नहीं है पर एक प्रक्रिया के लिए कोई फायदा नहीं होगा शामिल हैं। इसके अलावा, विभिन्न प्रणालियों अलग अलग तरीकों से डेटा का प्रतिनिधित्व करते हैं। जैसे, बस नेटवर्क धारा के संदेश से काम नहीं चलेगा memcpying। कैसे डेटा क्रमबद्धता करने के लिए मेरा उत्तर के दायरे से बाहर है।

उन दोनों के बीच क्या अंतर है?

एक स्वत: या स्थिर भंडारण के साथ एक सरणी है, और अन्य एक सूचक (स्वचालित या स्थिर भंडारण के साथ) है कि मुक्त दुकान में सरणी के पहले तत्व की ओर इशारा करता है।

09/10/2019 को 14:28
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more