13得票3回答
堆分配创建了一个未初始化的值。

我一直在追踪这个bug,但就是搞不明白。难道我忘记了一些基本的C语言知识吗?==28357== Conditional jump or move depends on uninitialised value(s) ==28357== at 0x4C261E8: strlen (mc_re...

13得票3回答
给定后者可以轻松替代前者,memcpy()和strncpy()有什么区别?

memcpy()和strncpy()之间的显著区别是什么?我之所以问这个问题,是因为我们可以轻松地改变strncpy()来复制任何类型的数据,而不仅仅是字符,只需将前两个非char*参数强制转换为char*并将第三个参数更改为该非char类型大小的倍数即可。在下面的程序中,我已成功使用它将整数...

11得票6回答
utf8 aware strncpy

我很难相信我是第一个遇到这个问题的人,但我搜索了很长时间,没有找到解决方案。 我想使用 strncpy,但它必须是 UTF8 意识的,以便不会将 utf8 代码点部分写入目标字符串。 否则,即使您知道源字符串是有效的 UTF8(当源字符串大于最大长度时),您也无法确定结果字符串是否有效。 ...

9得票4回答
strncpy导致分段错误

我正在尝试使用strncpy。 我的程序如下所示 typedef struct { char from_str[10]; }test; main () { test s1; memset(&s1,0,sizeof(test)); char...

7得票7回答
strncpy和使用sizeof复制最大字符数

我正在使用以下代码。 char call[64] = {'\0'} /* clean buffer */ strncpy(call, info.called, sizeof(call)); 我经常使用sizeof作为目标大小来保护溢出,以防源大于目标。这样我可以防止缓冲区溢出,因为它只会...

7得票7回答
std::string的strncpy等价函数是什么?

在C++标准库中是否有与strncpy完全等效的函数?我的意思是一种函数,它可以将一个字符串从一个缓冲区复制到另一个缓冲区,直到遇到终止符0为止。例如,当我需要从不安全的源(如TCP数据包)解析字符串时,我能够在复制数据时检查长度。 我已经对这个问题进行了很多搜索,并且我也发现了一些有趣的主...

7得票4回答
在C语言中复制字符串结尾

我正在尝试在C语言中使用strncpy将字符串的一部分复制到另一个字符串中。 例如: c[] = "How the heck do I do this"; 然后将 "do this" 复制到另一个字符串中,以使: d[] = "do this" 需要帮助,感激不尽。