जब एक सॉकेट recv का उपयोग कर के माध्यम से डेटा प्राप्त, मैंने देखा है कि, के साथ:चार सरणी बनाम चार सूचक
char buffer[4]; memset(buffer, 0, 4); recv(socket, buffer, 4, 0);
मैं प्राप्त
mesgx
"मैसेज" जो मैंने भेजा है, कुछ यादृच्छिक पात्रों के साथ जोड़ा गया है।
अगर मैं
char * method = (char *) malloc(4); memset(buffer, 0, 4); recv(socket, buffer, 4, 0);
बजाय का उपयोग करें, मैं प्राप्त
mesg
तो वहाँ कोई यादृच्छिक सामान मेरी स्ट्रिंग के साथ जोड़ दिया है। मुझे पता चला कि अगर मैं चार [5] का उपयोग करता हूं तो यह भी काम करता है, लेकिन मुझे वास्तव में समझ में नहीं आता है। क्या मॉलोक (4) वास्तव में 5 बाइट आवंटित करता है, पांचवां एनयूएल होता है?
मैंने उतना सोचा, लेकिन फिर यह मॉलोक के साथ क्यों काम करता है? – fresskoma