用C语言实现一个memset_s
时间: 2024-05-05 11:18:53 浏览: 138
memset()函数的另一种纯c语言实现方式
好的,我可以回答这个问题。memset_s是C11新增的函数,用于内存安全地设置一段内存的值。
下面是一个用C语言实现memset_s的示例代码:
```
#include <stdio.h>
#include <string.h>
void memset_s(void *s, size_t smax, int c, size_t n)
{
if (n > smax) {
// 如果要设置的内存大小超过了允许的最大值,就返回错误
fprintf(stderr, "memset_s: buffer too small\n");
return;
}
memset(s, c, n);
// 在设置完内存后,把剩余部分的内存设置为0
if (n < smax) {
memset((char*)s + n, 0, smax - n);
}
}
int main(void)
{
char s[10];
memset_s(s, sizeof(s), 'A', 5);
printf("%s\n", s);
return 0;
}
```
阅读全文