পয়েন্টার টু স্ট্রাকচার কী?
একটি স্ট্রাকচারের সম्पূর্ণ ঠিকানা ধারণ করে এমন পয়েন্টারকে পয়েন্টার টু স্ট্রাকচার বলা হয়। এটি লিংকড লিস্ট, ট্রি, গ্রাফের মতো জটিল ডেটা স্ট্রাকচার তৈরি করার জন্য অত্যন্ত গুরুত্বপূর্ণ।
ঘোষণা (Declaration)
struct tagname *ptr;
উদাহরণ: struct student *s;
মেম্বার এক্সেস: অ্যারো অপারেটর (->)
স্ট্রাকচার পয়েন্টারের মাধ্যমে মেম্বার এক্সেস করতে -> অপারেটর ব্যবহার করা হয়।
ptr->member_name;
উদাহরণ: s->sno, s->sname, s->marks
উদাহরণ প্রোগ্রাম
#include <stdio.h>
struct student {
int sno;
char sname[30];
float marks;
};
int main() {
struct student s;
struct student *st;
printf("Enter sno, sname, marks: ");
scanf("%d %s %f", &s.sno, s.sname, &s.marks);
st = &s; // s-এর ঠিকানা st-তে
printf("\nStudent Details:\n");
printf("Number = %d\n", st->sno);
printf("Name = %s\n", st->sname);
printf("Marks = %.2f\n", st->marks);
return 0;
}
আউটপুট
Enter sno, sname, marks: 1 priya 34 Student Details: Number = 1 Name = priya Marks = 34.00
কেন পয়েন্টার টু স্ট্রাকচার ব্যবহার করবেন?
- ফাংশনে স্ট্রাকচার পাস করার সময় কপি না করে ঠিকানা পাস করলে মেমরি বাঁচায়।
- ডাইনামিক মেমরি অ্যালোকেশন (malloc) এর সাথে ব্যবহার করে রানটাইমে নোড তৈরি করা যায়।
- লিংকড লিস্ট, ট্রি, গ্রাফ ইমপ্লিমেন্টেশনের মূল ভিত্তি।