gpt4 book ai didi

c - 这个代码片段有什么问题

转载 作者:太空宇宙 更新时间:2023-11-04 00:12:51 24 4
gpt4 key购买 nike

伙计们,这是memset() 的一个实现,但是我被告知代码中存在一个逻辑错误。你能帮我找到它吗?

我觉得应该将目标字符串的双指针传递给这个函数,这就像传递指针变量的地址而不是指针本身。

当我在 MS VC++ IDE 中执行代码时遇到“访问冲突”。

‘C’库函数memset的定义是

void *memset(char *s, char c, size_t n) 

Copy c to the first n characters of s. Return s.


void *memset(char *s, char c, size_t n)
{
size_t i;
for (i = 0; i < n; i++, s++)
{
*s = c;
}
return s;
}

最佳答案

这有几个问题。

void *memset(char *s, char c, size_t n)
{
size_t i;
for (i = 0; i < n; i++, s++) /* incrementing s means you cannot return */
{ /* the original value */
*s = c; /* consider using s[i] = c after not incr. s*/
}
return s; /* this should probably be a cast back to void */
}

关于c - 这个代码片段有什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/813941/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com