你的使用strlen()
是错误的,这依赖于缓冲区的内容是一个有效的字符串; 它不会清除整个缓冲区.
只要使用memset()
具有sizeof
:
memset(buffer, 0, sizeof buffer);
请注意,这sizeof
不是一个函数,因此对于像这样的情况,不需要括号(或者在我看来应该使用括号).
如果您的C库不包含memset()
,当然可以使用普通循环:
for(size_t i = 0; i < sizeof buffer; ++i) buffer[i] = 0;
如果您只想清除所使用的部分,并且知道它是一个有效的字符串,那么您的代码当然是有效的.我可能不会使用向后循环,因为我发现那不直观,但那只是我.
注意:如果此缓冲区用于字符串,则应将其更改为具有类型char
,而不是uint8_t
.
你的使用strlen()
是错误的,这依赖于缓冲区的内容是一个有效的字符串; 它不会清除整个缓冲区.
只要使用memset()
具有sizeof
:
memset(buffer, 0, sizeof buffer);
请注意,这sizeof
不是一个函数,因此对于像这样的情况,不需要括号(或者在我看来应该使用括号).
如果您的C库不包含memset()
,当然可以使用普通循环:
for(size_t i = 0; i < sizeof buffer; ++i) buffer[i] = 0;
如果您只想清除所使用的部分,并且知道它是一个有效的字符串,那么您的代码当然是有效的.我可能不会使用向后循环,因为我发现那不直观,但那只是我.
注意:如果此缓冲区用于字符串,则应将其更改为具有类型char
,而不是uint8_t
.