Should you be returning &Item_List[which] in Get_Item() ?

You might as well add break; lines to each case of your switch. No point in going through check all other possibilities if it has already failed the case you are interested in.