Hi, I'm now in a job where I have to code in pure C (not C++) and am having trouble adjusting to the differences, hope you can help. As soon as I un-comment any one of the commented lines in the code snippet below, the program fails to compile with a syntax error on the "int a=0..." line after the commented block (This line isn't a problem while the rest is commented out). I haven't been able to identify the problem, even after searching the internet, am I missing something about the assignment operator/structs/arrays in C?

Code c:
typedef struct touch_switch {
	int p_loc;
} touch_switch_t;
void touch_switches_set(touch_switch_t *switches[]);
void main(void) {
	touch_switch_t S[8];
/*	S[0].p_loc = 0x0;
	S[1].p_loc = 0x1;
	S[2].p_loc = 0x4;
	S[3].p_loc = 0x5;
	S[4].p_loc = 0x2;
	S[5].p_loc = 0x3;
	S[6].p_loc = 0x8;
	S[7].p_loc = 0x9;*/
/*	touch_switches_set(&S);*/
	int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0;
void touch_switches_set(touch_switch_t *switches[]) {
	(*switches)[0].p_loc = 0x0;
	(*switches)[1].p_loc = 0x1;
	(*switches)[2].p_loc = 0x4;
	(*switches)[3].p_loc = 0x5;
	(*switches)[4].p_loc = 0x2;
	(*switches)[5].p_loc = 0x3;
	(*switches)[6].p_loc = 0x8;
	(*switches)[7].p_loc = 0x9;