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 توضيح السؤال اقتباس
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 لتجنب تسرب الذاكرة. اقتباس
السؤال
Mari Carmen
كيف ممكن احل مشكله Shallow Copy problem باستخدام strcpy
توضيح السؤال
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.