কম্পিউটার টিউটোরিয়াল

C++-এ string এবং char[] টাইপের পার্থক্য

এই বিভাগে দেখব C++-এ string এবং char[]-এর পার্থক্য। char[] মূলত ক্যারেক্টার অ্যারে। তাই এর কিছু প্রপার্টি রয়েছে:

  • যদি char[] স্ট্যাক সেকশনে অ্যালোকেট করা হয়, তবে এটি সবসময় ২৫৬ বাইট জায়গা নেবে। টেক্সটের সাইজের ওপর এটি নির্ভর করবে না।

  • যদি malloc() বা calloc() ব্যবহার করে হিপ সেকশনে ডাইনামিক্যালি স্পেস অ্যালোকেট করা হয়, তবে মেমরি রিলিজ করার দায় আপনার, এবং হিপ অ্যালোকেশনের ওভারহেড থাকবে।

  • যদি ক্যারেক্টার অ্যারের সাইজ ২৫৬ ক্যারেক্টারের বেশি হয়, তবে প্রোগ্রাম ক্র্যাশ করতে পারে। কোডে ভদ্র.Assertion মেসেজ আসতে পারে।

  • স্ট্রিংয়ের দৈর্ঘ্য পেতে হলে '\0' ক্যারেক্টার পাওয়া পর্যন্ত পুরো ক্যারেক্টার অ্যারে স্ক্যান করতে হয় প্রতি বার।

অন্যদিকে, C++-এর স্ট্যান্ডার্ড নেমস্পেসে string আছে। এটি একটি ক্লাস, এবং এর ভেতরে ক্যারেক্টার অ্যারে থাকে। এটি আটোমেটিক্যালি ইউজারের জন্য ম্যানেজ করে। অধিকাংশ ক্ষেত্রে স্ট্রিংয়ের বিল্ট-ইন অ্যারে ১৬ ক্যারেক্টার। তাই ছোট স্ট্রিংয়ের জন্য এটি ফ্র্যাগমেন্টেশন করছে না, কিন্তু বড় স্ট্রিংয়ের জন্য হিপ সেকশন ব্যবহার করে।

C++ string-এ বিল্ট-ইন '\0' ক্যারেক্টার থাকে। এটি কাউন্ট ছাড়া স্ট্রিংয়ের দৈর্ঘ্য সংরক্ষণ করে। ছোট টেক্সটের জন্য হিপ নেয় না বলে এটি বাফার ওভাররান থেকে রক্ষা করে।而且 স্ট্রিং C++-এ ব্যবহার করা সহজ।

  1. C/C++-এ strncmp() এবং strcmp()-এর পার্থক্য

  2. C++-এ 'struct' এবং 'typedef struct'-এর পার্থক্য

  3. C++ স্ট্রিং কনস্ট্যান্ট এবং ক্যারেক্টার কনস্ট্যান্টের পার্থক্য

  4. C++-এ রিলেশনাল অপারেটর (==) এবং std::string::compare() এর পার্থক্য