سؤال

ومؤشرات تقديم بعض المشاكل خاصة لقرار الزائد.

ويقول على سبيل المثال،

void f(int* x) { ... }
void f(char* x) { ...}
int main()
{
    f(0);
}

ما هو الخطأ في الدعوة و (0)؟ كيف يمكنني إصلاح استدعاء دالة لو (0)؟

هل كانت مفيدة؟

المحلول

وf((int*) 0) أو f((char *) 0)

ولكن إذا وجدت نفسك تفعل هذا وأود أن نلقي نظرة أخرى على التصميم الخاص بك.

نصائح أخرى

وألقها، أو لا تستخدم على الإطلاق:

f((int*)0);

ما هو الخطأ في الدعوة و (0) هو قرار غير واضحة. كل من مهامكم طاقتها تأخذ مؤشر وهو في هذه الحالة لا يمكن حلها إلا عبر المدلى بها.

f((int*)0)

واعتمادا على ما نحاول القيام به هنا وهناك خيارات أخرى ليست غامضة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top