الفرق بين مالوك و نيو الفرق بين

Anonim

مالوك مقابل نيو

وان من أسئلة المقابلة الأكثر شيوعا في توظيف مبرمج الكمبيوتر هو لمقدم الطلب / مبرمج الكمبيوتر لشرح الاختلافات بين مالوك والجديد. كلا مالوك وجديدة موجودة في مجال لغة الكمبيوتر وغالبا ما تستخدم من قبل المبرمجين الكمبيوتر لتخصيصات الذاكرة الحيوية.

الاختلافات الأساسية بين الاثنين هي أن مالوك موجود في لغة C بينما الجديد هو سمة معينة من لغة C ++. مالوك هو أيضا وظيفة (والتي، للمبرمجين، يتطلب بعض الوقت لتنفيذ) في حين الجديد هو برنامج المشغل (الذي يقلل من وقت التنفيذ). هذا هو الاستفادة من المشغل الجديد لأن المبرمجين القيام البرمجة في الوقت الحقيقي لديها حاجة لاختيار أسرع طريقة للاستخدام.

المشغل الجديد هو نوع آمنة على عكس وظيفة مالوك.

وظيفة مالوك هي وظيفة مكتبة للغة C. كل ما يفعله هو تخصيص الذاكرة وإرجاع مؤشر إليها. من ناحية أخرى، المشغل الجديد هو بناء على مستوى اللغة، ووظيفتها هي خلق كائن عن طريق تخصيص الذاكرة واستدعاء منشئات المناسبة. الفرق آخر من وظيفة مالوك من المشغل الجديد هو أن مالوك يتطلب التبييض خلال إعلان في حين أن الأول لا. أيضا، وظيفة مالوك يستخدم كلمة "الحرة" لمسح الذاكرة في حين أن "حذف" يستخدم في المشغل الجديد لغرض مماثل.

كما أن للطريقين طرق مختلفة في التعامل مع الفشل وإرهاق الذاكرة. إذا فشل وظيفة مالوك، فإنه يعود مع مؤشر نول. المشغل الجديد أبدا بإرجاع مؤشر نول ولكن يشير إلى الفشل من خلال رمي استثناء بدلا من ذلك. هذا هو ميزة للمشغل الجديد منذ مبرمج الكمبيوتر لم يكن لديك للتحقق من مؤشر عاد في كل مرة يدعو جديدة ولا مبرمج الكمبيوتر سوف تفوت مثل هذا الاستثناء.

لا تقوم وظيفة مالوك ببناء كائن (يسمى منشئ الكائن) ولكن المشغل الجديد يقوم بذلك. ميزة أخرى جديدة هي أن المشغل يمكن أن تكون مفرطة في حين وظيفة مالوك لا يمكن. المشغل الجديد يتطلب عددا محددا من الكائنات لتخصيص بينما يتطلب وظيفة مالوك تحديد العدد الإجمالي للبايت لتخصيص.

الذاكرة يمكن أيضا إعادة حجم أو إعادة تخصيصها باستخدام وظيفة مالوك باستخدام ريالوك. ومع ذلك، المشغل الجديد لا يمكن أن تؤدي هذه الوظيفة ويهمها باعتبارها واحدة من عيوب المشغل الرئيسي. ميزة أخرى من وظيفة مالوك على المشغل الجديد هو أن مالوك يمكن أن تمتد كمية الذاكرة بسرعة. هذا لا يزال يستخدم مالوك و ريالوك. عندما تفعل نفس الوضع في لغة C ++، مبرمج لديه لخلق قطعة جديدة من الذاكرة مع المشغل الجديد. الذاكرة الجديدة يجب أن يكون حجم تعديل وسيتم نسخها على البيانات من المخزن المؤقت الأصلي.يجب حذف المخزن المؤقت الأصلي بعد النسخ. هذا يمكن أن يكون عملية بطيئة لمبرمج.

المشغل الجديد لديه النفوذ على وظيفة مالوك عن طريق إعادة نوع البيانات بالضبط في حين أن الدالة ترجع الفراغ *. وظيفة مالوك أيضا لا يمكن أن تكون مثقلة بالمقارنة مع المشغل الجديد حيث الزائد هو ممكن. ميزة أخرى من المشغل الجديد هو أن هناك فرص أقل من ارتكاب الأخطاء مع المشغل مقارنة مع وظيفة مالوك. ويعتبر هذا زائد للمبرمجين خاصة إذا كانوا يكتبون العديد من الرموز أو العمل على رمز على جدول زمني ضيق. وظيفة مالوك ومجانية يمكن استخدامها في C ++، ولكن لا يمكن استخدامها مباشرة. من المستحسن استخدام جديد وحذف بدلا من ذلك.

ملخص:

1. مالوك هي وظيفة في حين الجديد هو المشغل.

2. جديد هو سمة معينة من لغة C ++ في حين يتم استخدام مالوك في لغة C.

3. المشغل الجديد يتبع مع "حذف" في حين أن وظيفة مالوك يذهب مع "مجانا. "

4. وظيفة مالوك هي وظيفة مكتبة للغة C في حين أن المشغل الجديد هو بناء على مستوى اللغة من لغة C ++.