আমি আমাদের প্রকল্পের জন্য অন্য কারও সি ++ কোড পর্যালোচনা করছি যা উচ্চ-পারফরম্যান্স কম্পিউটিংয়ের জন্য এমপিআই ব্যবহার করে (10 ^ 5 - 10 ^ 6 কোর)। কোডটি বিভিন্ন আর্কিটেকচারে (সম্ভাব্য) বিভিন্ন মেশিনের মধ্যে যোগাযোগের অনুমতি দেওয়ার উদ্দেশ্যে তৈরি করা হয়েছে। তিনি একটি মন্তব্য লিখেছেন যা এর লাইনে কিছু বলেছে:
আমরা সাধারণত ব্যবহার করব
newএবংdelete, কিন্তু এখানে আমি ব্যবহার করছিmallocএবংfree। এটি প্রয়োজনীয় কারণ কারণ কিছু সংকলকগণ যখনnewব্যবহৃত হয় তখন ডেটা আলাদাভাবে প্যাড করে দেয় , ফলে বিভিন্ন প্ল্যাটফর্মের মধ্যে ডেটা স্থানান্তর করতে ত্রুটি দেখা দেয়। এটি সঙ্গে হয় নাmalloc।
স্ট্যান্ডার্ড newবনাম mallocপ্রশ্নগুলি থেকে আমি জানি এমন কোনও কিছুর সাথে এটি খাপ খায় না ।
নতুন / মোছা এবং ম্যালোক / ফ্রি এর মধ্যে পার্থক্য কী? এই সংকেতটি ধারণার প্রতি ইঙ্গিত দেয় যে সংকলক কোনও বস্তুর আকারকে আলাদাভাবে গণনা করতে পারে (তবে তারপরে কেন এটি ব্যবহারের চেয়ে পৃথক হয় sizeof?)।
ম্যালোক ও প্লেসমেন্ট নতুন বনাম নতুন একটি মোটামুটি জনপ্রিয় প্রশ্ন তবে কেবল newযেখানে কনস্ট্রাক্টরগুলি ব্যবহার mallocকরেন না যেখানে এটি প্রাসঙ্গিক নয় সেগুলি ব্যবহারের বিষয়ে কথা বলে।
malloc কিভাবে প্রান্তিককরণ বুঝতে পারে? বলেছেন যে মেমরির গ্যারান্টিযুক্ত সঠিকভাবে যেকোন একটির সাথে একত্রিত হবে newবা mallocযা আমি আগে ভেবেছিলাম।
আমার ধারণাটি হ'ল তিনি অতীতে কিছু সময় নিজের বাগটি ভুলভাবে নির্ণয় করেছিলেন এবং তা হ্রাস করেছিলেন newএবং mallocবিভিন্ন পরিমাণে প্যাডিং দিয়েছেন, যা আমার মনে হয় সম্ভবত সত্য নয়। তবে গুগলের সাথে বা আগের কোনও প্রশ্নের উত্তর আমি খুঁজে পাচ্ছি না।
আমাকে সহায়তা করুন, স্ট্যাকওভারফ্লো, আপনি আমার একমাত্র আশা!
mallocএবং new, যেমন newকিছু পরিবেশের একটি ব্লক বরাদ্দ, শুরুতে কিছু ডেটা যোগ করা হয়েছে এবং এই তথ্য পরে একটি অবস্থান ডান দিকে একটি পয়েন্টার ফিরে যান। (আমি ডেটা ব্লকের ভিতরে অন্যদের সাথে একমত হয়েছি mallocএবং newঅবশ্যই একই ধরণের প্যাডিং ব্যবহার করতে হবে))