为什么VS2013运行的时候出现 error C2660: “strcpy_s”: 函数不接受 2 个参数

#include<stdio.h>#include<stdlib.h>#include<string.h>#defineMAXLINES25intget_lines(ch... #include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAXLINES 25

int get_lines(char *lines[]);
void sort(char *p[], int n);
void print_strings(char *p[], int n);

char *lines[MAXLINES];

int main(void)
{
int number_lines;

number_lines = get_lines(lines);

if (number_lines < 0)
{
printf("内存溢出");
exit(-1);
}

sort(lines, number_lines);

print_strings(lines, number_lines);

return 0;
}

int get_lines(char *lines[])
{
int n = 0;
char buffer[80];

while ((n < MAXLINES) && (gets_s(buffer) != 0) && (buffer[0]) != '\0')
{
if ((lines[n] = (char *)malloc(strlen(buffer))) == NULL)
return -1;

strcpy_s(lines[n++],buffer);
}

return n;
}

void sort(char *p[], int n)
{
char *c;
int a, b;
for (a = 1; a < n;a++)
{
for (b = 0; b < n - 1; b++)
{
if (strcmp(p[b] , p[b + 1]) > 0)
{
c = p[b];
p[b] = p[b + 1];
p[b + 1] = c;
}
}
}
}

void print_strings(char *p[], int n)
{
int count = 0;

for (count = 0; count < n; count++)
{
printf("%s \n", *p[count]);
}
}
展开
 我来答
kaixingui2012
推荐于2017-11-27 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6491万
展开全部
	strcpy_s()有三个参数!
while ((n < MAXLINES) && (gets_s(buffer) != 0) && (buffer[0]) != '\0')
{
if ((lines[n] = (char *)malloc(strlen(buffer)+1)) == NULL) //要多一个
return -1;

                strcpy_s(lines[n++],strlen(buffer)+1, buffer); //第二个参数是数据最大长度
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式