No. Check out how $DESCRIPTOR is defined, in descrip.h:
#define $DESCRIPTOR(name,string) struct dsc$descriptor_s name = { sizeof(
string)-1, DSC$K_DTYPE_T, DSC$K_CLASS_S, string }
In your example the first element of lname and lvalue will both contain 3, derived from the size of (char*), however expected is the length of the string, derived from the size of a character array.