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

#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]);
}
}

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); //第二个参数是数据最大长度
}

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网