int (*)[]
একটি অসম্পূর্ণ টাইপ হতে পারে?
সি 2018 6.2.5 1 বলেছেন:
অনুবাদ ইউনিটের বিভিন্ন পয়েন্টে কোনও অবজেক্টের ধরণ অসম্পূর্ণ হতে পারে (সেই ধরণের বস্তুর আকার নির্ধারণের জন্য পর্যাপ্ত তথ্যের অভাব) বা সম্পূর্ণ (পর্যাপ্ত তথ্য থাকা) থাকতে পারে।
সুতরাং এটি মনে হয় যে কোনও প্রকারের আকারটি জানা থাকলে, টাইপটি সম্পূর্ণ। .2.২..1.২৮ উল্লেখ করে যে নির্দিষ্ট ধরণের পয়েন্টারগুলির একই আকার থাকতে হবে (পয়েন্টার void
এবং অক্ষর, সামঞ্জস্যপূর্ণ ধরণের দিকে নির্দেশক, কাঠামোর দিকে নির্দেশক এবং ইউনিয়নগুলিতে পয়েন্টার), তবে অন্য ধরণের পয়েন্টারগুলি পৃথক হতে পারে।
সি বাস্তবায়নে যেখানে সমস্ত পয়েন্টার, বা অ্যারেগুলিতে সমস্ত পয়েন্টার int
একই আকার থাকে, তারপরে আকারটি int (*)[]
জানা যায়, সুতরাং এটি সম্পূর্ণ হবে। একটি বাস্তবায়নের ক্ষেত্রে, বলুন, বড় অ্যারেগুলির জন্য বিভিন্ন পয়েন্টার ব্যবহার করা হয়, আকারটি জানা যাবে না, তাই এটি অসম্পূর্ণ।
এমএম হিসাবে উল্লেখ করেছেন যে , কোনও কাঠামোতে 7. a.২.১ এ প্রতিবন্ধকতা অনুসারে একটি চূড়ান্ত নমনীয় অ্যারে সদস্য ব্যতীত অপূর্ণ প্রকারের সদস্য থাকতে হবে না This. এটি প্রস্তাব দেয় যে এক আকারের পয়েন্টার সহ একটি প্রয়োগকরণ অবশ্যই গ্রহণ করতে হবে struct { int (*p)[]; }
যখন একটি বাস্তবায়ন আলাদা রয়েছে এই জাতীয় অ্যারেগুলির জন্য আকারগুলি একটি সীমাবদ্ধতা লঙ্ঘন সনাক্ত করতে হবে। (এর পরিবর্তে এর অর্থ হ'ল এই জাতীয় ঘোষণাটি কঠোরভাবে সি এর অংশ নয়)
void *
সম্পূর্ণ যা সত্য তা দেখায় যে একটি অসম্পূর্ণ প্রকারের পয়েন্টার সম্পূর্ণ হতে পারে। এটি কোনও অসম্পূর্ণ প্রকারের পয়েন্টারটি অসম্পূর্ণ হতে পারে কিনা তা দেখায় না। যদি কেউ জিজ্ঞাসা করে যে "স্তন্যপায়ী হস্তি কি হতে পারে?", "সিংহ একটি স্তন্যপায়ী প্রাণী" দেখায় যে এটি স্তন্যপায়ী প্রাণীর হাতী হতে পারে না। অসম্পূর্ণ প্রকারের নির্দেশকগুলির সেট এক্সটিতে অসম্পূর্ণ কোনও উপাদান থাকতে পারে কিনা তা প্রশ্ন জিজ্ঞাসা করে। দেখানো হচ্ছে যে অসম্পূর্ণ প্রকারের নির্দেশকগুলির সেট এক্স-তে একটি উপাদান রয়েছে যা সম্পূর্ণ অপ্রাসঙ্গিক।