لماذا أحصل على إنذار في كل مرة يمكنني استخدام malloc?
سؤال
إذا كنت تستخدم 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
و يحذرك لأن:
- لا تعلن صراحة أنها و
- هناك بالفعل المدمج في وظيفة بهذا الاسم الذي يحتوي على توقيع مختلف عن تلك التي كانت ضمنا أعلن (عندما وظيفة يعلن ضمنا إعادة الحجة أنواع يفترض أن تكون
int
, التي ليست متوافقة مع المدمج فيmalloc
, الذي يأخذsize_t
وإرجاعvoid*
).
نصائح أخرى
وأنت لم تفعل #include <stdlib.h>
.
وتحتاج إلى تضمين ملف الرأس أن تعلن وظيفة، على سبيل المثال:
#include <stdlib.h>
إذا لم تقم بتضمين هذا الملف رأس، ولا يعرف وظيفة لمترجم. لذلك تراه غير معلنة.
وجعل هذه العادة من النظر مهامكم حتى في مساعدة.
وعلى غرار معظم مساعدة لC في صفحة دليل يونيكس.
والرجل malloc
ويعطي نتائج مفيدة جدا.
وغوغلينغ رجل malloc سوف تظهر لك ما أعنيه.
وبالطبع في يونيكس أيضا تحصل بالمناسبة عن الأشياء التي هي ذات الصلة.
لا تنتمي إلى StackOverflow