在赋值C后访问char*

boo*_*oom 2 c

我已将成员变量的值赋值为:

myValue = (char*)malloc(strlen(inValue) * sizeof(char));

strcpy(mValue, inValue);
Run Code Online (Sandbox Code Playgroud)

在分配时,该值是正确的(采取printf输出):

http://www.w3.org/2001/XMLSchema
Run Code Online (Sandbox Code Playgroud)

但是,当我得到它的价值后,我得到它:

http://www.w3.org/2001/XMLSchema(!
Run Code Online (Sandbox Code Playgroud)

这个问题可能是什么问题

Whi*_*ind 15

strlen()返回但不包括终止NUL,因此您需要在malloc()中为其返回添加1.myValue因此最终没有终止.

myValue = malloc((strlen(inValue) + 1) * sizeof(char));
Run Code Online (Sandbox Code Playgroud)