strcpy(myValue, inValue) function copies the contents of the string inValue appended with the string terminated control char '\0' to the memory block allocated by malloc.
Once strlen(inValue) returns the length of the string excluding '\0' control char, the area to be allocated by malloc(strlen(inValue) * sizeof(char)) is not large enough to receive strcpy(myValue, inValue).
So, the '\0' char is copied to a not allowed memory location, overwriting another program data, and may cause segment fault, BAD ACCESS, GPF or something else just like giving no error message and showing unpredicted results, depending on the compiler/operating system/platform.
On your case, you got a correct result just after the execution of strcpy, but a little bit later the string seemed to be corrupted, because the '\0' has been copied to a memory location that does not belong to the block allocated to myValue, and the owner of that block could have just change it, and your string will lose its end suffix. So a program error or just trash may be showed if you try to print myValue again after that.
To correct your code, the area to be allocated must be increased, as showed on the code bellow.
Just one more thing... in your example you wrote strcpy(mValue, inValue) instead of strcpy(myValue, inValue), but i think you have mistyped while writing the post.
myValue = (char*)malloc((strlen(inValue) + 1) * sizeof(char));
strcpy(myValue, inValue);