সম্পাদনা করুন: ওপি (বা কোনও সম্পাদক) আমি এই উত্তরটি সরবরাহ করার পরে কিছুটা ক্ষেত্রে মৌলিক প্রশ্নের একক উদ্ধৃতিটি ডাবল উদ্ধৃতিতে নীরবে পরিবর্তন করেছি।
আপনার কোডের ফলে সংকলক ত্রুটি হবে। আপনার প্রথম কোড খণ্ড:
char buf[10] ; buf = ''
দ্বিগুণ অবৈধ। প্রথমত, সিতে, খালি বলে কোনও জিনিস নেই char। আপনি খালি স্ট্রিং নির্দিষ্ট করতে ডাবল কোট ব্যবহার করতে পারেন:
char* buf = "";
এটি আপনাকে একটি NULস্ট্রিংকে পয়েন্টার দেবে , অর্থাত্ কেবলমাত্র একটি NULঅক্ষর সহ একটি একক অক্ষরযুক্ত স্ট্রিং । তবে আপনি সেগুলির মধ্যে কিছুই সহ একক উদ্ধৃতি ব্যবহার করতে পারবেন না - এটি অপরিজ্ঞাত। আপনার যদি NULচরিত্রটি নির্দিষ্ট করতে হয় তবে আপনাকে এটি নির্দিষ্ট করতে হবে:
char buf = '\0';
ব্যাকস্ল্যাশ চরিত্র থেকে বিচ্ছিন্ন করা প্রয়োজন '0'।
char buf = 0;
একই জিনিসটি সম্পাদন করে, তবে পূর্ববর্তীটি পড়ার পক্ষে বাচ্চাটি কম অস্পষ্ট, আমার মনে হয়।
দ্বিতীয়ত, অ্যারেগুলি সংজ্ঞায়িত করার পরে আপনি আরম্ভ করতে পারবেন না।
char buf[10];
অ্যারে ঘোষণা করে এবং সংজ্ঞায়িত করে। অ্যারে শনাক্তকারী bufএখন মেমরির একটি ঠিকানা, এবং আপনি যেখানে bufঅ্যাসাইনমেন্টের মাধ্যমে পয়েন্টগুলি পরিবর্তন করতে পারবেন না । সুতরাং
buf = // anything on RHS
অবৈধ। আপনার দ্বিতীয় এবং তৃতীয় কোড টুকরা এই কারণে অবৈধ।
একটি অ্যারে শুরু করার জন্য, আপনাকে সংজ্ঞা দেওয়ার সময় এটি করতে হবে:
char buf [10] = ' ';
প্রথম চরটি স্থান '\040'এবং বাকী সত্তা NUL, অর্থাৎ, সহ আপনাকে একটি 10-অক্ষরের অ্যারে দেবে '\0'। যখন একটি অ্যারেটিকে একটি প্রাথমিক সূচক দিয়ে ঘোষণা করা হয় এবং সংজ্ঞায়িত করা হয়, তখন নির্দিষ্ট প্রাথমিক মানগুলির সাথে থাকা অ্যারের উপাদানগুলি (যদি থাকে তবে) স্বয়ংক্রিয়ভাবে প্যাড হয়ে যায় 0। কোনও "এলোমেলো সামগ্রী" থাকবে না।
আপনি যদি অ্যারে ঘোষণা করে এবং সংজ্ঞা দেন তবে নীচের মত এটি আরম্ভ করবেন না:
char buf [10];
সমস্ত উপাদানগুলিতে আপনার এলোমেলো সামগ্রী থাকবে।