she = alloc_first_she(nice, pretty, tall, smart, reach);
while (!dead(me))
{
....
if ( she->love != me )
{
free(she);
she = alloc_new_she(--nice, --pretty, --tall, --smart,
--reach);
}
else
{
f...ck(she);
new_she = alloc_new_she(++nice, ++pretty, ++tall, ++smart,
++reach);
. if ( new_she && new_she->love == me )
{
free(she);
she = new_she;
}
else
{
nice--;
pretty--;
tall--;
smart--;
reach--;
}
}
....
}
free(me);
return 0;
}
This however will work good if function alloc_new_she() is always
returning a pointer and no heap problems occur and purify didn't find
any ABR or FMR.