Mari Carmen نشر 4 مارس 2021 أرسل تقرير مشاركة نشر 4 مارس 2021 (معدل) كيف ممكن احل مشكله Shallow Copy problem باستخدام strcpy void addFront(T *item) { Node<T>* p = new Node<T>; p->next = NULL; p->data = item; if (head == NULL) { head= p; n++; } else { p->next = head; head = p; n++; } } تم التعديل في 4 مارس 2021 بواسطة Wael Aljamal توضيح السؤال اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Abderrezak Djatou نشر 2 نوفمبر 2023 أرسل تقرير مشاركة نشر 2 نوفمبر 2023 بتاريخ On 4/3/2021 at 19:42 قال Mari Carmen: كيف ممكن احل مشكله Shallow Copy problem باستخدام strcpy void addFront(T *item) { Node<T>* p = new Node<T>; p->next = NULL; p->data = item; if (head == NULL) { head= p; n++; } else { p->next = head; head = p; n++; } } لحل مشكلة Shallow Copy problem باستخدام strcpy في الشيفرة التي قدمتها، يمكنك القيام بالتالي: 1- حجز مساحة في الذاكرة لتخزين البيانات بدلاً من استخدام نفس المؤشر. 2- انسخ البيانات باستخدام strcpy. 3-قم بتفريغ المساحة المخصصة بمجرد الانتهاء من استخدام البيانات. هنا هو الكود المعدل: void addFront(T *item) { Node<T>* p = new Node<T>; p->next = NULL; p->data = new T[strlen(item) + 1]; // حجز مساحة في الذاكرة strcpy(p->data, item); // نسخ البيانات باستخدام strcpy if (head == NULL) { head = p; n++; } else { p->next = head; head = p; n++; } } بهذا التعديل، يتم حل مشكلة Shallow Copy problem عن طريق حجز مساحة في الذاكرة ونسخ البيانات إليها باستخدام strcpy.وعندما لا تحتاج إلى هذه البيانات بعد، يجب عليك تحرير المساحة المخصصة باستخدام delete لتجنب تسرب الذاكرة. اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
Mari Carmen
كيف ممكن احل مشكله Shallow Copy problem باستخدام strcpy
توضيح السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.