byte READBYTE(byte ** from) // line 105 { byte *from_tmp = *from; byte b; memcpy (&b, from_tmp, sizeof (byte)); from_tmp++; *from = (void *)from_tmp; return b; } produces: byteptr.c:105: error: syntax error before ‘*’ token byteptr.c:109: error: syntax error before ‘&’ token byteptr.c:111: warning: type defaults to ‘int’ in declaration of ‘from’