Dynamic Memory Allocation এবং FILE Operation and Pointer in C Program


Call by Value এবং Call by Reference ব্যাখ্যা কর ।

Call By ValueCall By Reference
Original Value এর কোনো পরিবর্তন হয় না।এখানে Original Value এর পরিবর্তন হয় ।
এখানে ভেরিয়েবলের অনুলিপি (Copy of variable) পাস হয়ে থাকে। এখানে ভেরিয়েবল নিজেই পাস হয়ে থাকে।
Actual এবং Formal Argument ভিন্ন ভিন্ন Memory Location এ তৈরি হয় । Actual এবং Formal Argument একই Memory
Location এ তৈরি হয়। 
ভেরিয়েবলের মান কে একটি সরল পদ্ধতি ব্যবহার করে পাস করা হয়ভেরিয়েবলের ঠিকানা (Address of Variable)সঞ্চয় করতে পয়েন্টার এর প্রয়োজন হয় ।
int main() {
     int x = 10;
     printf("before calling=%d",x);
      increment(x);
     printf("After calling=%d",x);
     getch();
   }
    void increment(int a) {
                 a = a + 1;
                printf("value is=%d",a);
     }
 int main() {
      int x = 10;
      printf("before calling=%d",x);
      increment(&x);
      printf("After calling=%d",x);
      getch();
    }
    void increment(int *a) {
                 *a = *a + 1;
                printf("value is=%d",*a);
     }

#Video tutorial...coming

Command Line argument বলতে কি বোঝ? এটির Syntax-টি লেখ ।

প্রোগ্রামিংয়ে কমান্ড লাইন আর্গুমেন্ট(Command Line argument) একটি গুরুত্বপূর্ণ ধারণা। main() এর মধ্যে argument/parameter প্রেরন করা হয় এবং বাইরে থেকে অর্থাৎ Command Line থেকে নিয়ন্ত্রন করার চেষ্টা করা হয় 
 Syntax: int main(int argc, char *argv[])

এখানে main() - এর মধ্যে দুটি parameter/argument প্রেরন করা হয়েছে। "argc"- কমান্ড লাইন (Command Line)- এর মধ্যে parameter/argument-এর সংখ্যা গণনা করে "argv[]"- একটি পয়েন্টার অ্যারে যা char type পয়েন্টার ধারণ করে প্রোগ্রামে পাস হওয়া parameter/argument কে  নির্দেশ করে।

#Video Tutorial..coming

C Programming language-এর নিম্নলিখিত term গুলি উদাহারন সহ ব্যাখ্যা কর । 1)fseek() 2)fwrite

coming soon.....

Dynamic Memory Allocation কি? উদাহারন সহযোগে ব্যাখ্যা কর ।

অ্যারে(Array) হ'ল একটি নির্দিষ্ট সংখ্যক মানের সংগ্রহকরন । একবার অ্যারের আকার ঘোষণা (Array Size Declaration) হয়ে গেলে আপনি এটিকে পরিবর্তন করতে পারবেন না।

কখনও কখনও আপনি ঘোষিত অ্যারের আকার(Array Size) অপর্যাপ্ত হতে পারে। এই সমস্যাটি সমাধান করার জন্য, Run Time -এ আপনি mannualy memory  allocation করতে পারেন। এটি  প্রোগ্রামিংয়ে (Programming) Dynamic Memory Allocation  নামে পরিচিত।

Dynamic Memory Allocation- এর জন্য  C Programming Language কতগুলি  Library Function ব্যবহার করা হয় এবং এগুলি "stdlib.h" নামক header file -এ defined করা থাকে। Library Function গুলি হল-

a) malloc() 

b) calloc()

 c)realloc()

 d) free


malloc() কি? উদাহারন সহযোগে ব্যাখ্যা কর ।

malloc() function-এর অর্থ হল- memory allocation- যা  নির্দিষ্ট সংখ্যক বাইটের মেমরির একটি ব্লক(Single block of memory) সংরক্ষণ করে।এটি void pointer return করে যার ফলে যে কোনও form-এর pointer-cast করা যায়। malloc() function ব্যবহার করলে মেমরি uninitialized অবস্থায় থাকে। 

Syntax: ptr= (castType*)malloc(size);

Example: ptr = (int*) malloc(10 * sizeof(int));

উপরিউক্ত উদাহারন থেকে বলতে পারি 10*4=40 byte size এর মেমরির একটি ব্লক বরাদ্দ (allocate) হয়েছে। এখানে বরাদ্দকৃত মেমরির প্রথম বাইট (First byte of allocated memory) -এর address কে point করে ptr

calloc() কি? উদাহারন সহযোগে ব্যাখ্যা কর ।

calloc() function-এর অর্থ হল- contiguous  allocation- যা  নির্দিষ্ট সংখ্যক বাইটের মেমরির অনেকগুলি ব্লক(multiple block of memory) সংরক্ষণ করে। calloc() function ব্যবহার করলে মেমরি প্রত্যেক টি বিট-এর মান শূন্য হয়ে যায়। 

Syntax: ptr= (castType*)calloc(n,size);

Example: ptr = (int*) calloc(5 ,sizeof(int));

উপরিউক্ত উদাহারন থেকে বলতে পারি মেমরিতে 5 ব্লক বরাদ্দ (allocate) হয়েছে যার প্রত্যেক টির আকার 5*4=20 byte

realloc() কি? উদাহারন সহযোগে ব্যাখ্যা কর ।

realloc()- re- allocation অর্থাৎ malloc()/ calloc() দ্বারা পূর্বে বরাদ্দকৃত মেমরির পুনরায় বৃদ্ধি অথবা হ্রাস করা।

Syntax: ptr= realloc(ptr,size);


free() কি? উদাহারন সহযোগে ব্যাখ্যা কর ।

free() -এই function টি ব্যবহার করলে malloc()/calloc() দ্বারা বরাদ্দকৃত মেমরি মুক্ত হয়। 

Syntax: free(ptr);

No comments:

Post a Comment