2016-07-03 8 views
1

Я работаю над проектом, который в основном контролирует парковку. И в какой-то момент моего кода я использую функцию strcpy(), но я получаю сообщение о том, что эта функция может быть небезопасной.
Вот часть кода я использую strcpy():Как я могу преодолеть «небезопасную» ошибку?

Automovel::Automovel(char * matr, Data ent, double comp) { 
    //CONSTRUTOR POR ENUMERAÇAO: 
    //RECEBE A MATRICULA, A DATA DE ENTRADA E O COMPRIMENTO DO CARRO 
    //POSIÇAO E VALOR PAGO FICA INDEFINIDO 
    matricula = new char[11]; 
    entry = new Data(ent); 

    strcpy(matricula, matr); 
    comprimento = comp; 
    pos[0] = -1; pos[1] = -1; 
    pago = -1; 
} 

мне нужно использовать эту функцию, так, как я могу решить эту ошибку?

+0

Ну, это сообщение не ответило, как я могу его решить, все еще используя функцию strcpy() –

+1

Это не ошибка использования небезопасной функции. Я предполагаю, что ваша ошибка заключается в том, что 'comprimento' никогда не объявлялся. –

+0

@ CésarPereira, мне кажется, что вы можете использовать безопасную 'strncpy' вместо' strcpy'. – zneak

ответ

0

Ваша проблема заключается в том, что strcpy является «небезопасной» функцией, поэтому вам необходимо отключить unsafe warning в Visual Studio, поэтому следуйте these steps.

1

Вы не сказали, но я предполагаю, что вы используете Visual Studio; вот где я столкнулся с ошибкой.

Либо стиснуть зубы и использовать strcpy_s и т.д., или сделать это:

#pragma warning(disable : 4996) 

Это отключает «особенность», что делает strcpy об ошибке.

+0

И я должен делать это в каждом файле, я получаю ошибку? У меня много файлов .cpp в моем проекте –

+0

Я бы это сделал. Но вы также можете сделать это через IDE. Перейдите в «Свойства проекта», «C/C++», «Дополнительно», затем «Отключить специальные предупреждения». https://msdn.microsoft.com/en-us/library/jj715718.aspx –