PDA

View Full Version : نحوه ساخت strcut به صورت آرایه



NIMA_1981
جمعه 12 آذر 1389, 01:11 صبح
من یک سوال در مورد ساختار یا همون struct دارم من کد رو به این شکل نوشتم و میتونم مقدار دهی کنم تما یک مشکل دارم چطوری میتونم ایم رو بصورت آرایه در بیارم




struct inf_metro {
int no_line;
char *name_line;
double color_line;
int how_sta;
char *data_open;
float leg;
};



بعد اینجوری مقدار دهی میکنم



inf_metro line1={1,"Sokolnicheskaya",0x0C,18,"FOREGROUND_BLUE",26.2};



اما الان فقط میتونم line1 رو بخونم من میهوام این رو به این شکل داشته باشم

line[1] ,line[2],...
که بتونم مفدار عدد داخل [] رو عوض کنم

ممنون میشم راهنمایی کنید

هم دانشگاهی
جمعه 12 آذر 1389, 08:53 صبح
خب ببین وقتی یک ساختمان یا حتی یک کلاس ایجاد میکنی در واقع یک نوع داده ای جدید ایجاد کرده ای !

برای اینکه ساختمان رو به صورت آرایه در بیاری کافیه بنویسی:


info_metro a[20];

این جوری یک آرایه 20 تایی از ساختمان info-meto ایجاد کرده ای! :لبخند:

برای مقدار دهی اولیه هم میتونی از یک تابع دیگه استفاده کنی! چون که به اعضا ساختمان دسترسی داری! :لبخندساده:

همیشه موفق باشی! :بوس:

imran.askani
یک شنبه 27 فروردین 1391, 13:20 عصر
یه سوال داشتم ممنون میشم اگه راهنماییم کنید :قلب:
1... برنامهای که اطلاعات 100 دانشجو رو گرفته و امکان جستجو هم در فراهم باشد
2... برنامه بالا که منو انتخاب داشته باشه ( insert..edit..delete..search ):قلب:

Ananas
یک شنبه 27 فروردین 1391, 17:31 عصر
یه راهش میتونه این باشه:

struct inf_metro {
union
{
struct
{
int no_line;
int how_sta;
float leg;
double color_line;
char *name_line;
char *data_open;
};
struct
{
int i[2];
float f[1];
double d[1];
char * c[2];
};
};
};

و یا اینکه :

#pragma pack (push, 1);
struct inf_metro {
union
{
struct
{
int no_line;
char *name_line;
double color_line;
int how_sta;
char *data_open;
float leg;
};
struct
{
byte b[sizeof(int) * 2 + sizeof(float) + sizeof(double) + sizeof(char *) * 2];
};
};
};
#pragma pack (pop)

مثال برای کد دوم :

*(char **)&im.b[4] = "MMMMMMMMMMMMMMMM";
*(double *)&im.b[8] = 3.333333333;

چون همه ی اطلاعات از یک جنس نیستند و سایزشون هم اندازه ی هم نیست یکمی شلوغ میشه. اگه همشون رو از یک جنس کنی هم کلا میتونی یه آرایه داشته باشی از همون جنس و هم متغییر ها رو با اسم خاصشون داشته باشی.
pragma pack رو هم برای فشرده کردن ساختمان نوشتم که کمترین سایز ممکن رو داشته باشه.

رامین مرادی
یک شنبه 27 فروردین 1391, 18:25 عصر
دوستان لطفا" کد ندید تا دوست عزیزمون شروع به نوشتن کد کنن تا هم یاد بگیرن هم اگه مشکلی بود ما درخدمتیم سعی کن استارت رو بزنی اینو به خاطر خودت می گم در ضمن روزی که من اولین بار نشستم پشت یه سیستم اشتباهی دکمه مینیمایز رو زدم صفحه غیب شد دست و پام رو گم کردم ولی حالا خودم برنامه هام رو میتونم به اکثر زبانها بنویسم از جمله سیستمی کاربردی و ویروس نویسی:لبخند:و... پس استارت رو خودت بزن انشالله تو کارات موفق می شی:چشمک: