Skip to main content

Posts

Showing posts from October, 2020

structure

Structure কি? structure হচ্ছে user-define data type । মানে যে প্রোগ্রাম লিখছে তার বানানো data type , কিছু data type তো আগে থেকেই ছিল যেমনঃ int, float, double , char ইত্যাদি । তাহলে আমাদের এটা শিখতে হবে কেন? কারণ, আমরা যখন int a; এভাবে ডিক্লেয়ার করছি তখন সেটা মেমোরিতে ব্লক তৈরী করছে এভাবে,               4byte                                                         a   এখন কেউ যদি চাই একটা variable declare করবে , কিন্তু ২টা ব্লক তৈরী হবে 4byte 4byte                             ...

Dynamic Memory Allocation (Data Structure)

  Dynamic Memory Allocation আমরা একটা প্রোগ্রামে যেসব ভ্যারিয়েবল, Array ইত্যাদি   ইউজ করি এগুলাতো মেমোরিতে একটা জায়গা দখল করে তাই না? এটা নিয়ে কি কোনো সন্দেহ আছে?   তো এই জায়গা দখল করার প্রক্রিয়াটা দুইভাবে সম্ভব। ১. static   ২. Dynamic Static –স্থির Dynamic – গতিশীল   “মেমোরি দখল করে” এটার ইংরেজী Memory Allocation. দখলটা দুইভাবে করতে পারে, , , ।     যদি static ভাবে করে তাহলে static memory allocation , যদি dynamically করে তাহলে dynamic memory allocation বলে।   Dynamic Memory Allocation বলতে কি বুঝাচ্ছে? আমরা প্রোগ্রাম লিখে রান করি না? রান হচ্ছে (running) এই অবস্থায় যদি মেমোরিতে নতুন ভাবে জায়গা নেই তখন সে গতিশীল অবস্থায় জায়গা দখল করছে দেইখা ঐটা রে dynamic বা গতিশীল মেমোরি দখল বলে।    মানে এইক্ষেত্রে আমরা আগে থেকে জানবো না কতটূকু জায়গা দখল করবে, রান হয়ে যাবে then ওর যত ইচ্ছা জায়গা নিবে কিন্তু এটা প্রোগ্রাম রান হউয়ার পরে   রানিং অবস্থায় হচ্ছে এইজন্য এটাকে dynamic memory allocation বলে।   এই যে রানিং হউয়ার পর...

Pointer - 1 (Data Structure)

  পয়েন্টার নিয়ে লিখতে বসা এইটা maybe 4 নাম্বার পোষ্ট ,আগের গুলা কেটে দিছি,   লিখতে গেলে এত এত বড় হয়ে যায়, তারপরেও মনে হয় যে আইডিয়া ক্লিয়ার হয়না তখন সব বাদ দিয়ে দেই, কিভাবে লিখলে বেসিক আইডিয়াটুক সহজে   ক্লিয়ার হবে বুঝছি না, এটা হয়তো ফাইনাল পোষ্ট হবে এখনও জানি না কেমনে লিখব ।   পয়েন্টার কি? উত্তরঃ পয়েন্টার হচ্ছে এমন একটা ভ্যারিয়েবল যেটা নিজের মধ্যে শুধু মেমোরি address রাখতে পারে। যেই টাইপের ভ্যারিয়েবলের মেমোরি address রাখতে চাইবো সেই সেম টাইপের পয়েন্টার হতে হবে, যেমনঃ   int a=5;    a এর address রাখতে চাইলে         int *ptr;     ptr=&a;       পয়েন্টারের টাইপও ইন্টিজার হতে হবে আবার, float fur=10.02; float *pt;    pt=&fur; মোদ্দাকথা পয়েন্টার যেই টাইপের হবে সেই টাইপের ভ্যারিয়েবলের ঠিকানা নিজের মধ্যে রাখতে পারবে।   ·                  কোনো ভ্যারিয়েবলের সামনে ‘&’ (amp...