我对这个指针有意见。
我很确定有人能回答我的问题。。。
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
int main()
{
char str_a[20];
char *pointer;
char *pointer2;
strcpy_s(str_a, "Dear World!\n");
pointer = str_a;
printf(pointer);
pointer2 = pointer + 2;
printf(pointer2);
strcpy_s(pointer2, "idn't even notice!\n");
printf(pointer);
getchar();
return 0;
}
我明白了
错误代码C2660
我能怎么办?
最佳答案
您需要更改strcpy_s呼叫以包括目的地大小
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
int main()
{
char str_a[20];
char *pointer;
char *pointer2;
strcpy_s(str_a,sizeof(str_a), "Dear World!\n");
pointer = str_a;
printf(pointer);
pointer2 = pointer + 2;
printf(pointer2);
strcpy_s(pointer2, sizeof(str_a) -2,("idn't even notice!\n");
printf(pointer);
getchar();
return 0;
}
PS-你可以从我的评论中找到答案,我的评论指出了strcpy的文档