Could you try passing the value at the address of the pointer? i.e. rather than:
char * mypointer;
sizeof(mypointer);
Which would only give you size of a pointer.
do:
sizeof(* mypointer);
Should give the size of the type to which the pointer is pointing at, as it were.