অন্তর্নির্মিত ফাংশন 'malloc' এর বেমানান অন্তর্নিহিত ঘোষণা


155

আমি এই ত্রুটি পাচ্ছি:

সতর্কতা: অন্তর্নির্মিত ফাংশন 'malloc' এর বেমানান অন্তর্নিহিত ঘোষণা

আমি এটি করার চেষ্টা করছি:

fileinfo_list* tempList = malloc(sizeof(fileinfo_list));

কেবলমাত্র রেফারেন্সের জন্য হাতে ব্যবহৃত কাঠামোটি হ'ল:

typedef struct {
    fileinfo** filedata;
    size_t nFiles;
    size_t size;
    size_t fileblock;
} fileinfo_list;

আমি যা করেছি তাতে কোন ভুল দেখছি না। আমি মাত্র tempList1 এক্স আকারের সাথে একটি তৈরি করছি fileinfo_list


উত্তর:


340

আপনি সম্ভবত অন্তর্ভুক্ত করতে ভুলে গেছেন <stdlib.h>


1
আহ ধন্যবাদ :) এখনও সি এর ঝুলন্ত, প্রথম সি প্রোগ্রাম জাভা থেকে আসছে :)
এসজিই

<stdlib.h>সতর্কতা অন্তর্ভুক্ত করার পরে একটি ত্রুটি দ্বারা প্রতিস্থাপন করা হয়েছিলerror: conflicting types for 'malloc'
ক্রিস্টোস কারাপাপস

46

আপনার দরকার #include <stdlib.h>। অন্যথায় এটি int malloc()সংজ্ঞাযুক্ত যা অন্তর্নির্মিত ধরণের সাথে বেমানান void *malloc(size_t)


এটি হিসাবে সংজ্ঞায়িত করা হয় int malloc(), এটি প্রতিলিপি না void *malloc(size_t)?
ব্যবহারকারী 1343318

@ ব্যবহারকারী 1343318 অগত্যা, যা হুবহু সতর্কতার কারণ। intউদাহরণস্বরূপ: x৪- বিট ডেটা পয়েন্টার এবং ৩২-বিট মান সহ একটি এক্স 64৪ প্ল্যাটফর্ম ছাগলের মলকে ছুঁড়ে ফেলবে, যখন একটি x86 32 বিট-ডেটা-পয়েন্টার / 32 বিট - intআপাতদৃষ্টিতে সঠিকভাবে কাজ করতে পারে। আমরাও সঠিক হয়, হিসাবে তন্ন তন্ন ক্ষেত্রে কম্পাইলার কি সচেতন mallocআসলে আয় এবং ধরে নেয় intপ্রতিক্রিয়ায়।
WhozCraig


4

Stdlib.h ফাইলটিতে ম্যালোক, কলোক, রিলোক এবং ফ্রি ফাংশনগুলির শিরোনাম সম্পর্কিত তথ্য বা প্রোটোটাইপ রয়েছে।

সুতরাং এএনএসআই সি-তে এই সতর্কতাটি এড়াতে আপনার stdlib শিরোনাম ফাইলটি অন্তর্ভুক্ত করা উচিত।


-4

এই জাতীয় সতর্কতার একমাত্র সমাধান হ'ল প্রোগ্রামটিতে stdlib.h অন্তর্ভুক্ত করা।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.