好吧,我真的对VS2008中的这种行为感到困惑.
这段代码..
char data[512] = "";
char c[1] = "";
c[0] = '1';
strcat(data, c);
Run Code Online (Sandbox Code Playgroud)
..导致data被设置为此字符串值:1ÌÌÌÌhÿ
当然应该只是1?
我怎样才能确保data只包含我复制到其中的单个char [](即1)?
为什么要strcat()复制所有垃圾?为什么c甚至包含那些垃圾?
谢谢你的帮助
编辑:谢谢大家.
Jar*_*Par 12
这里的问题是您将无效值传递给strcat.它期望第二个参数是有效的c字符串值.要有效,它必须是char值的数组/指针,以null终止符(\0)结尾.传递的值不包含空终止符,因此无效.
您需要为字符串值定义空终止符c才有效.例如
char c[2];
c[0] = '1';
c[1] = '\0';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
982 次 |
| 最近记录: |