Mic*_*ael 1 c++ arrays char strcpy
我使用strcpy_s如下:
char names[2][20];
strcpy_s(names[0],"Michael");
strcpy_s(names[1],"Danny");
Run Code Online (Sandbox Code Playgroud)
它工作得很好.
但是,当我改char **,
int size1=2;
int size2=20;
char **names=new char*[size1];
for(int i=0;i<size1;i++)
names[i]=new char[size2];
strcpy_s(names[0],"Michael");
strcpy_s(names[1],"Danny");
Run Code Online (Sandbox Code Playgroud)
它给了我这个错误信息:
错误C2660:'strcpy_s':函数不带2个参数
为什么会这样?我需要动态创建char数组,所以我该怎么办?
有两种形式strcpy_s(至少在Windows上):一种用于指针,一种用于数组.
errno_t strcpy_s(
char *strDestination,
size_t numberOfElements,
const char *strSource
);
template <size_t size>
errno_t strcpy_s(
char (&strDestination)[size],
const char *strSource
); // C++ only
Run Code Online (Sandbox Code Playgroud)
使用指针时,必须指定目标缓冲区的元素数:
strcpy_s(names[0], size2, "Michael");
strcpy_s(names[1], size2, "Danny");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7888 次 |
| 最近记录: |