@param [Pointer] val @param ctx @return [Array(String, Pointer)] Returns a [ String, Pointer ] tuple so the C memory for the string can be freed
[Validate]