Функция перегружена с кодом ошибки C2660 - PullRequest
0 голосов
/ 11 октября 2018

У меня проблема с этим указателем.
Я почти уверен, что есть кто-то с ответом на мою проблему ...

#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

Что я могу с этим поделать?

1 Ответ

0 голосов
/ 12 октября 2018

вам нужно изменить ваши вызовы 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_s

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...