繁体   English   中英

strcpy_s function 在我的代码中不起作用

[英]The strcpy_s function doesn't work in my code

这个 function 应该将 char[] 复制到分配的存储中。 由于某种原因,缓冲区对于此操作总是太小。

str(char* f) {

    len = strlen(f);
    txt = (char*)malloc(len); //txt is a pointer to a char
    strcpy_s(txt, len, f);

}

由于某种原因,缓冲区对于此操作总是太小。

您忘记为 null 终结器分配 memory。 一个空字符串需要一个字符(终止符)的空间。 长度为 1 的字符串需要两个字符 (1 + 1) 的空间。 长度为len的字符串需要len + 1字符的空间。

那说:

  • 在 C 中,请改用strdup
  • 在 C++ 中,不要使用strlenmallocstrcpy_s (也不要strdup )。 我推荐std::string

确保包含 cstring 库

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM