char x [1000];
x = 'hello';
我会用什么来清除内容x
?我无法重新初始化它,请使用strcpy(x, '/0')
or free()
.
您不能将任何内容分配给您的变量数组x
是。因此,任何以x =
是错的。第二'hello'
不是字符串,它是一个多字符文字,其类型为int
,所以这也没有意义。字符串文字包含在"
而字符(或多字符)文字由'
.
所以如果你想填充你的缓冲区x
与您使用的字符串“hello”strncpy
甚至更好strlcpy
如果可供使用的话:
strncpy( x, "hello", sizeof( x ) );
strlcpy( x, "hello", sizeof( x ) );
The strlcpy
函数更好,因为它总是以nul
特点。
如果您想清除它,您可以按照其他答案的建议进行操作。我建议使用strncpy
or strlcpy
按照@codaddict的建议使用空字符串。这是最明显地表达“嘿,我想清除该字符串”的代码。如果您想从内存中删除字符串的全部内容(例如,如果它包含密码或类似的内容),请使用memset
正如@Ken 和@Tom 建议的那样。
另请注意,您永远不能使用类似的函数strcpy
or strcat
不接受输出缓冲区的大小作为参数。这些确实不安全,会导致严重的错误和安全漏洞。如果您知道不会出现任何问题,甚至不要使用它们,只需养成使用安全功能的习惯即可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)