এই বিভাগে দেখব C++-এ string এবং char[]-এর পার্থক্য। char[] মূলত ক্যারেক্টার অ্যারে। তাই এর কিছু প্রপার্টি রয়েছে:
যদি
char[]স্ট্যাক সেকশনে অ্যালোকেট করা হয়, তবে এটি সবসময় ২৫৬ বাইট জায়গা নেবে। টেক্সটের সাইজের ওপর এটি নির্ভর করবে না।যদি
malloc()বাcalloc()ব্যবহার করে হিপ সেকশনে ডাইনামিক্যালি স্পেস অ্যালোকেট করা হয়, তবে মেমরি রিলিজ করার দায় আপনার, এবং হিপ অ্যালোকেশনের ওভারহেড থাকবে।যদি ক্যারেক্টার অ্যারের সাইজ ২৫৬ ক্যারেক্টারের বেশি হয়, তবে প্রোগ্রাম ক্র্যাশ করতে পারে। কোডে ভদ্র.Assertion মেসেজ আসতে পারে।
স্ট্রিংয়ের দৈর্ঘ্য পেতে হলে
'\0'ক্যারেক্টার পাওয়া পর্যন্ত পুরো ক্যারেক্টার অ্যারে স্ক্যান করতে হয় প্রতি বার।
অন্যদিকে, C++-এর স্ট্যান্ডার্ড নেমস্পেসে string আছে। এটি একটি ক্লাস, এবং এর ভেতরে ক্যারেক্টার অ্যারে থাকে। এটি আটোমেটিক্যালি ইউজারের জন্য ম্যানেজ করে। অধিকাংশ ক্ষেত্রে স্ট্রিংয়ের বিল্ট-ইন অ্যারে ১৬ ক্যারেক্টার। তাই ছোট স্ট্রিংয়ের জন্য এটি ফ্র্যাগমেন্টেশন করছে না, কিন্তু বড় স্ট্রিংয়ের জন্য হিপ সেকশন ব্যবহার করে।
C++ string-এ বিল্ট-ইন '\0' ক্যারেক্টার থাকে। এটি কাউন্ট ছাড়া স্ট্রিংয়ের দৈর্ঘ্য সংরক্ষণ করে। ছোট টেক্সটের জন্য হিপ নেয় না বলে এটি বাফার ওভাররান থেকে রক্ষা করে।而且 স্ট্রিং C++-এ ব্যবহার করা সহজ।