Hi all, I'd be very grateful if you could help me with a very strange set of errors and warnings I get on some C code. I've been staring at it for a while and I'm really frustrated.
So, the code is like this:
Nevermind what it does or what it's supposed to do; this is sort of an abridged version of my program just to narrow down where the trouble arises. So I just want to get it to run, not give me any sensible results.Code:#include <stdio.h> #include <stdlib.h> void main(){ int n,**mo,pn,m,p,n1=1,n2=1,test1[10][10]={{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0}}; p=phm(test1,&mo,n,n1,n2,&pn,&m); } int phm(int **h,int ***d_p,int n,int a1,int a2,int *k,int *pm){ int **e1,**e2,**ma,**d; char pd,m; if((d=malloc(sizeof(int *)))==NULL)return(1); if((*d=malloc(sizeof(int)))==NULL)return(1); if(a1==a2){ d={{a1}}; pd=1; } e1={{a1}}; e2={{a2}}; m=0; while(!pd){ *pm=1; d={{0}}; pd=0; } *d_p=d; return(0); }
Now the errors and warnings I get all seem to indicate that everything going on inside phm is taken to be global for some reason. Specifically, I get the following:
Code:--------------------Configuration: mingw5 - CUI Debug, Builder Type: MinGW-------------------- Checking file dependency... Compiling C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c... [Warning] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:3: warning: return type of 'main' is not `int' [Error] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:13: error: syntax error before '{' token [Warning] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:14: warning: data definition has no type or storage class [Error] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:15: error: syntax error before '}' token [Warning] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:16: warning: braces around scalar initializer [Warning] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:16: warning: (near initialization for `e1') [Error] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:16: error: `a1' undeclared here (not in a function) [Error] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:16: error: initializer element is not constant [Error] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:16: error: (near initialization for `e1') [Error] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:16: error: initializer element is not constant [Error] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:16: error: (near initialization for `e1') [Warning] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:16: warning: data definition has no type or storage class [Warning] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:17: warning: braces around scalar initializer [Warning] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:17: warning: (near initialization for `e2') [Error] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:17: error: `a2' undeclared here (not in a function) [Error] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:17: error: initializer element is not constant [Error] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:17: error: (near initialization for `e2') [Error] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:17: error: initializer element is not constant [Error] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:17: error: (near initialization for `e2') [Warning] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:17: warning: data definition has no type or storage class [Warning] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:18: warning: data definition has no type or storage class [Error] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:19: error: syntax error before "while" [Warning] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:21: warning: initialization makes pointer from integer without a cast [Warning] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:21: warning: data definition has no type or storage class [Warning] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:22: warning: braces around scalar initializer [Warning] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:22: warning: (near initialization for `d') [Warning] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:22: warning: data definition has no type or storage class [Error] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:23: error: redefinition of 'pd' [Error] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:14: error: previous definition of 'pd' was here [Warning] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:23: warning: data definition has no type or storage class [Error] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:24: error: syntax error before '}' token [Warning] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:25: warning: initialization makes pointer from integer without a cast [Error] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:25: error: initializer element is not constant [Warning] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:25: warning: data definition has no type or storage class [Error] C:\Users\Owner\AppData\Roaming\C-Free\5.0\samples\CHello.c:26: error: syntax error before "return" Complete Make CHello: 18 error(s), 17 warning(s)
These would all make total sense if all those commands were not inside any functions. But as it is, for the life of me I can't figure out what's happening. The brace pairs open and close as they should, so it's not a case of misplaced or missing braces. Same with parentheses. I'm going insane Please help? Thanks!