لماذا أحصل على إنذار في كل مرة يمكنني استخدام malloc?

StackOverflow https://stackoverflow.com/questions/1230386

سؤال

إذا كنت تستخدم malloc في قانون بلدي:

int *x = malloc(sizeof(int));

يمكنني الحصول على هذا التحذير من gcc:

new.c:7: warning: implicit declaration of function ‘malloc’  
new.c:7: warning: incompatible implicit declaration of built-in function ‘malloc’
هل كانت مفيدة؟

المحلول

تحتاج إلى إضافة:

#include <stdlib.h>

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

  1. لا تعلن صراحة أنها و
  2. هناك بالفعل المدمج في وظيفة بهذا الاسم الذي يحتوي على توقيع مختلف عن تلك التي كانت ضمنا أعلن (عندما وظيفة يعلن ضمنا إعادة الحجة أنواع يفترض أن تكون int, التي ليست متوافقة مع المدمج في malloc, الذي يأخذ size_t وإرجاع void*).

نصائح أخرى

وأنت لم تفعل #include <stdlib.h>.

وتحتاج إلى تضمين ملف الرأس أن تعلن وظيفة، على سبيل المثال:

#include <stdlib.h>

إذا لم تقم بتضمين هذا الملف رأس، ولا يعرف وظيفة لمترجم. لذلك تراه غير معلنة.

وجعل هذه العادة من النظر مهامكم حتى في مساعدة.

وعلى غرار معظم مساعدة لC في صفحة دليل يونيكس.

والرجل malloc

ويعطي نتائج مفيدة جدا.

وغوغلينغ رجل malloc سوف تظهر لك ما أعنيه.

وبالطبع في يونيكس أيضا تحصل بالمناسبة عن الأشياء التي هي ذات الصلة.

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