在尝试重新创建“memset”函数时,如果我尝试取消引用 void 指针,或者第二个参数的类型与第一个参数的类型不同,则会出错。为了使该功能正常工作,我必须将其更改为:
void ft_memset(unsigned char *st, unsigned char c, size_t n)
Run Code Online (Sandbox Code Playgroud)
是否可以像手册中那样定义该功能?
void *memset(void *s, int c, size_t n) <- This is the man version.
Run Code Online (Sandbox Code Playgroud)
我只使用库 stdio.h 来使用 size_t 我必须使用 -Wall -Wextra -Werror 进行编译
这是我的代码:
#include <stdio.h>
//stdio.h to use size_t;
//
void *ft_memset(unsigned char *str, unsigned char c, size_t n)
{
unsigned int i;
i = 0;
while (i < n)
{
str[i] = c;
i++;
}
return(str);
}
Run Code Online (Sandbox Code Playgroud)