我正在尝试strcpy更安全地更新呼叫strcpy_s.旧函数调用如下所示:
char buf[6];
strcpy(buf+1, "%#c");
Run Code Online (Sandbox Code Playgroud)
为了将上面的代码转换为更安全的版本,我会为size参数添加什么?
char buf[6];
strcpy_s(buf+1, /*SIZE GOES HERE*/, "%#c");
Run Code Online (Sandbox Code Playgroud)
我想我buf+1对代码部分感到困惑.这实际上只是一个指向寄存器ONE块的指针buf吗?如果是这样,我会为SIZE参数添加strcpy_s什么?我试过了:
strcpy_s(buf+1, sizeof(buf+1), "%#c");
Run Code Online (Sandbox Code Playgroud)
这似乎有用,但我想知道是否有更好的方法来做到这一点.
如果你复制到启动的buf,你会说:
strcpy_s(buf, sizeof(buf), "%#c");
Run Code Online (Sandbox Code Playgroud)
因为你正在跳过第一个字符,所以你可以使用少一个字符,所以:
strcpy_s(buf + 1, sizeof(buf) - 1, "%#c");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
248 次 |
| 最近记录: |