نوشته شده توسط
sina27
سلام دوستان عزيز يه سوال داشتم؛ ببينيد من مي خوام يه برنامه بنويسم به زبان سي
که براي ارجاع به متغير هاي متفاوت از يک سلسله متغير، از يه عدد داخل يه متغير استفاده کنم، خب همون طور که مي دونيد: ميشه اين کار رو با آرايه انجام داد،
int a;
char c=1,b=0;
char ch[2][3]={{c,d},{a,b}}; //create aray
a=ch[b][c] //d
اما مشکل آرايه اينه که فقط از يک نوع داده پشتيباني مي کنه،
ببينيد، مثلا من مي خوام يه ديتابيس داشته باشم، که براي هر عدد يک نام و براي هر نام چنتا مشخصه داشته باشم، اما مي خوام که بشه براي دسترسي به هر کدوم، تنها با يک متغير عددي و تغيير عدد داخل متغير به هر کدوم از زير مجموعه ها دسترسي داشته باشيم، ساختار و بعضي فرم هاي ديگه رو ديدم، اما بنظرم نميشه ارجاع با متغير عددي رو با ساختار و يا یونیون و... داشته باشيم، ممنون ميشم يه راه حل نشونم بدين.
يا علي
struct Table {
char* name;
int id;
}
struct Map{
int key =-1;
Table value;
}
int key_s = 0;
Map map[10];
Table& push(table& tStruct){
Map lmap;
lmap.key = tsruct.id;
lmap.value = tsruct;
bool flag=false;
for(int i; i < 11 ; i++){
if(tsruct.id == map[i].key ){
flag = true;
break;
}
}
if(flag){
map[key_s] = lmap;
return pop(key_s++);
}else
return pop(tStruct.id);
}
Table& pop(int key){
Table tValue;
tValue = map[key].value;
return tValue;
}
int main{
Table table;
table.name = "test";
table.id = 1001;
if( push(table).id == table.id){
printf("record has exist! %i" , table.id);
}else{
Table t = pop(table.id);
printf("new record save to map! %c , %i" , t.name , t.id);
}
}