have you try "return &hero;" ? and does both examples give that result?

Code:
int hero_order[3] = {0,1,2};
int cur_hr = 0;

HERO* create_hero()
{
		HERO* hero = malloc(sizeof(HERO));
		if(hero)
		{
			int cur_hero_order=hero_order[cur_hr];
			cur_hr+=1;
			
			switch (cur_hero_order)
			{
				case 0:
				{
					hero.INIT=16;
					return hero;//or return &hero
				}
				case 1:
				{
					hero.INIT=12;
					return hero;//or return &hero
				}
				case 2:
				{
					hero.INIT=15;
					return hero;//or return &hero
				}
			}
		}
		return NULL;
}



Last edited by Wjbender; 04/17/12 20:13.

Compulsive compiler