If such a construct such as this is illegal (says my compiler): struct Stuff { int i, j, k, l; }; int main(argc, char ** argv) { struct Stuff stuffy = { 0, 0, 0, 0 }; /* illegal part */ } Can someone give me a good reason why initializing automatic structures/unions is illegal? Thanks. filisa