सी ++
उत्तर
तो आदेश memcpy(destination, source, number_of_bytes)
है।
इसलिए, आप
memcpy(newarr, arr, 5 * sizeof *arr);
/* sizeof *arr == sizeof arr[0] == sizeof (int) */
साथ या
memcpy(newarr+1, arr, 5 * sizeof *arr);
साथ अंत में newarr
की शुरुआत में पुराने डेटा जगह कर सकते हैं क्योंकि आप arr
और newarr
, सूचक अंकगणित के डेटा प्रकार जानते हैं काम करता है। लेकिन memcpy
के अंदर यह प्रकार नहीं जानता है, इसलिए इसे बाइट्स की संख्या जानने की जरूरत है।
एक और विकल्प std::copy
या std::copy_n
है।
std::copy_n(arr, 5, newarr);
int
तरह मौलिक प्रकार के लिए, बिटवाइज़ memcpy
द्वारा किया प्रतिलिपि ठीक काम करेंगे। वास्तविक वर्ग के उदाहरणों के लिए, आपको std::copy
(या copy_n
) का उपयोग करने की आवश्यकता है ताकि कक्षा के अनुकूलित असाइनमेंट ऑपरेटर का उपयोग किया जा सके।
@refp: एक टिप्पणी जोड़ना ठीक था, लेकिन कोड को जटिल करने की कोई आवश्यकता नहीं थी। –
सुनिश्चित करें कि 'sizeof' के साथ संयोजन में ब्रांड्स आपके पोस्ट में एक स्टाइलिस्ट संशोधन हो सकता है, लेकिन मुझे यकीन है कि यह इसे अधिक जटिल बनाने की विधि नहीं माना जाएगा। सर्वसम्मति प्रोग्रामिंग में महत्वपूर्ण है (विशेष रूप से जब नौसिखियों से निपटना आसान होता है (उनके लिए) 'आकार' के एक "रूप" से निपटने के लिए (मेरे अजीब शब्द का बहाना))। –
लेकिन निश्चित रूप से 'sizeof' –
memcpy(*newarr, *arr, sizeof(arr));
आपको अव्यवस्था की आवश्यकता नहीं है। यह गलत है। क्या आप कुछ विवरण जोड़ सकते हैं क्यों '*' आवश्यक है? –
memcpy(dest,src,size)
dest -to which variable
src - from which variable
size - size of src varible
int* arr = new int[5]; //source
int* newarr = new int[6]; // destination
for(int i = 0;i<5;i++) {arr[i] = i * 3;printf(" %d ",arr[i]);}
memcpy(newarr,arr,sizeof(int)* 5);
for(int i = 0;i<5;i++) printf("%d",newarr[i]);
कृपया एक स्पष्टीकरण जोड़ने पर विचार करें। – OhBeWise
हालांकि यह कोड प्रश्न का उत्तर दे सकता है, _why_ और/या _how_ के बारे में अतिरिक्त संदर्भ प्रदान करने के लिए यह कोड प्रश्न का उत्तर इसके दीर्घकालिक मान में काफी सुधार करेगा। कुछ स्पष्टीकरण जोड़ने के लिए कृपया अपना उत्तर संपादित करें। –
- 1. सी/सी ++/जावा/सी #
- 2. सी #, सी/सी ++ या ऑब्जेक्टिव-सी
- 3. सी/सी ++
- 4. सी/सी ++
- 5. सी/सी ++
- 6. सी/सी ++
- 7. सी/सी ++
- 8. सी/सी ++
- 9. सी/सी ++
- 10. सी/सी ++
- 11. सी/सी ++
- 12. सी/सी ++
- 13. सी/सी ++
- 14. सी/सी ++
- 15. सी/सी ++
- 16. सी/सी ++
- 17. सी/सी ++
- 18. सी/सी ++
- 19. सी/सी ++
- 20. सी/सी ++
- 21. सी/सी ++
- 22. सी/सी ++
- 23. सी/सी ++
- 24. सी/सी ++
- 25. सी/सी ++
- 26. सी/सी ++
- 27. सी/सी ++
- 28. सी/सी ++
- 29. सी/सी ++
- 30. सी/सी ++
क्या प्रलेखन आप memcpy के लिए क्या है? –