这是原型:
void *memset(void *s, int c, size_t n)
首先我不确定我是否必须返回一些东西,因为例如当我使用 memset 时
memset(str, 'a', 5);
代替
str = memset(str, 'a', 5);
这是我的代码所在的位置:
void *my_memset(void *b, int c, int len)
{
int i;
i = 0;
while(b && len > 0)
{
b = c;
b++;
len--;
}
return(b);
}
int main()
{
char *str;
str = strdup("hello");
my_memset(str, 'a', 5);
printf("%s\n", str);
}
我不想在这个函数中使用数组,以便更好地理解指针和内存,所以我没有得到两件事: - 如何将 int c 复制到我的 void b 指针上的字符中 - 在我的 while 上使用什么条件来确定它在 '\0' 字符之前停止
编辑:我想知道有没有办法在不强制转换的情况下执行此功能?