#inlcude <stdio.h>
#inlcude <stdlib.h>
#inlcude <string.h>
int main() {
char *buff = (char*)malloc(sizeof(char) * 5);
char *str = "abcdefghijklmnopqrstuvwxyz";
memcpy (buff, name, strlen(str));
while(*buff) {
printf("%c" , *buff++);
}
printf("\n");
return 0;
}
यह कोड पूरी स्ट्रिंग "abc ... xyz" प्रिंट करता है। लेकिन "बफ" में उस स्ट्रिंग को पकड़ने के लिए पर्याप्त स्मृति नहीं है। कैसे memcpy() काम करता है? क्या यह realloc() का उपयोग करता है?क्या memcpy() realloc() का उपयोग करता है?
+1। –
मैं अपने वास्तविक एप्लिकेशन में एक स्ट्रिंग रखने के लिए इस बफर का उपयोग करना चाहता हूं। उस स्ट्रिंग की कोई पूर्वनिर्धारित लंबाई नहीं है। जब प्रोग्राम चल रहा है तो यह गतिशील रूप से बढ़ता है (कुछ अन्य तारों को जोड़ना ...)। जो समाधान मैंने पाया वह कुछ बड़ी स्मृति आवंटित कर रहा है (~ 1 केबी)। मैं जानना चाहता हूं कि इसके अलावा कोई अलग समाधान है? कृपया मदद करे। धन्यवाद। – shan
@shan, तो आप उस उद्देश्य के लिए 'realloc()' (लेकिन 'memcpy()') का उपयोग नहीं कर सकते हैं। – iammilind