小编Sof*_*rtz的帖子

memset 函数的正确类型是什么?

在尝试重新创建“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)

c char memset void-pointers function-definition

2
推荐指数
1
解决办法
338
查看次数

标签 统计

c ×1

char ×1

function-definition ×1

memset ×1

void-pointers ×1