c - memcpy_s 和 strcpy_s 错误,但手动 for 循环有效

标签 c visual-studio-2010 memcpy strcpy

在我的示例中,strcpy_s 和 malloc_s 会抛出错误,而手动复制似乎可以工作。这是代码。这有效:

hookaddrinfoluacode=(char *)malloc(16384);
// This works           
for(i=0;i<strlen(this_token);++i){
   hookaddrinfoluacode[i]=this_token[i];
}                       
hookaddrinfoluacode[i+1]='\0';

这不是

memcpy_s(hookaddrinfoluacode,sizeof(char),this_token,strlen(this_token));

这也不是:

strcpy_s(hookaddrinfoluacode,strlen(this_token),this_token);

该错误似乎是从标准库中的此代码行引发的:

 _VALIDATE_RETURN_ERRCODE(dst != NULL, EINVAL);

this_token 是从 this_token=strtok_s(NULL,":",&next_token); 调用获取的。

我很困惑:)

最佳答案

如果源不适合目标,

memcpy_s 会引发异常。 sizeof(char) 为 1。两者都验证指针不为 NULL,因此您必须有一个。

关于c - memcpy_s 和 strcpy_s 错误,但手动 for 循环有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10191981/

相关文章:

performance - VS2010 + Resharper 5 性能问题

c - 如何将双指针字符复制到另一个双指针字符?

visual-studio - 如何在 Visual Studio 2010 中进行并行构建?

c# - 过时的意思

c++ - 与 memcpy 相比,未对齐内存访问的 reinterpret_cast 的有效用例?

c - 为什么 memcpy 在 32 位模式下使用 gcc -march=native 在 Ryzen 上对于大缓冲区很慢?

c - 使用 getch() 将 char 数转换为 int 时出现问题;

ios - 线程 1 : EXC_BAD_ACCESS in Xcode with C code

c - arduino上的PWM褪色LED

c - 重复调用 C 函数会导致 R - 如何分配内存?