के बीच अंतर मैं कोड के निम्नलिखित भाग को समझने की कोशिश कर रहा हूं, लेकिन मैं "\ 0" और '\ 0' के बीच उलझन में हूं। मुझे इसकी मूर्खता है लेकिन कृपया मेरी मदद करें" 0" और ' 0'
#define MAX_HISTORY 20
char *pStr = "\0";
for(x=0;x<MAX_HISTORY;x++){
str_temp = (char *)malloc((strlen(pStr)+1)*sizeof(char));
if (str_temp=='\0'){
return 1;
}
memset(str_temp, '\0', strlen(pStr));
strcpy(str_temp, pStr);
अग्रिम धन्यवाद
'char * pStr =" \ 0 "; 'मुझे लगता है कि यह ऐसा नहीं है जो आपको लगता है। आप एक सूचक घोषित करते हैं और इसमें कुछ लिखते हैं। वह पता होगा जो यह इंगित करता है। वहाँ 'malloc' करो और बाद में आवंटित स्मृति भरें। या आप वहां एक चार सरणी का उपयोग कर सकते हैं। –
@KamiKaze मुझे लगता है कि 'char * pStr = "\ 0";' आप जो सोचते हैं वह नहीं है। यह एक सूचक घोषित करता है जिसका मूल्य स्ट्रिंग अक्षर ** का ** पता है जिसमें दो नल बाइट शामिल हैं। सही होने के लिए malloc करने की कोई ज़रूरत नहीं है। –
@ जीन-बैपटिस्ट युनस एमह, तुमने मुझे वहां सोचने के लिए कहा। स्मृति का जीवनकाल क्या है जिसमें दो नल बाइट रहते हैं? –