簡體   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