2016-07-03 1 views
1

Je travaille sur un projet qui consiste essentiellement à contrôler un parking. Et à un certain point de mon code j'utilise la fonction strcpy(), mais j'obtiens une erreur disant que cette fonction peut être dangereuse.
est ici la partie du code que je utilise strcpy():Comment puis-je surmonter une erreur "dangereuse"?

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; 
} 

je dois utiliser la fonction, donc, comment puis-je résoudre cette erreur?

+0

Eh bien, ce poste n'a pas répondu comment puis-je le résoudre, toujours en utilisant la fonction strcpy() –

+1

Ce n'est pas une erreur d'utiliser une fonction dangereuse. Je suppose que votre erreur est que 'comprimento' n'a jamais été déclaré. –

+0

@ CésarPereira, il me semble que vous pouvez utiliser le coffre-fort 'strncpy' au lieu de' strcpy'. – zneak

Répondre

0

Votre problème est que strcpy est une fonction 'dangereuse' donc vous devez désactiver le unsafe warning dans Visual Studio alors suivez these steps.

1

Vous ne l'avez pas dit, mais je suppose que vous utilisez Visual Studio; C'est là que j'ai rencontré l'erreur.

Morsure la balle et utiliser strcpy_s etc., ou faire ceci:

#pragma warning(disable : 4996) 

Cette désactive la « fonction » qui fait strcpy une erreur.

+0

Et je devrais faire cela dans tous les fichiers que j'obtiens l'erreur? J'ai beaucoup de fichiers .cpp dans mon projet –

+0

je le ferais. Mais vous pouvez également le faire via l'IDE. Allez dans Propriétés du projet, C/C++, Avancé, puis Désactiver les avertissements spécifiques. https://msdn.microsoft.com/en-us/library/jj715718.aspx –