On Wed, 2012-05-16 at 05:50 -0600, Gary Thomas wrote: > void *ptr; > switch(XX) { > case a: > define_some_structure A; > ptr = &A; > break; > case b: > define_some_structure B; > ptr = &B; > break; > } > call_some_function(ptr); > >[...] > > Is this even legal C? No. p.