2016-07-03 4 views
1

저는 기본적으로 주차장을 관리하는 프로젝트를 진행하고 있습니다. 그리고 내 코드의 일부 지점에서 나는 함수 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; 
} 

내가 기능을 사용할 필요가 있으므로, 어떻게 내가이 오류를 해결할 수 있습니다 :
는 여기에 내가 strcpy()을 사용하고 코드의 일부?

+0

글쎄, 어떻게 그걸 해결할 수 있을지, 여전히 strcpy() 함수를 사용하여 답변을하지 않았다 –

+1

안전하지 않은 함수를 사용하는 것은 오류가 아닙니다. 나는 당신의 실수가'comprimento'가 결코 선언되지 않았다고 가정합니다. –

+0

@ CésarPereira, 나는 strcpy 대신에 안전한'strncpy'를 사용할 수 있다고 생각합니다. – zneak

답변

0

귀하의 문제는 당신이 그렇게 these steps에 따라 비주얼 스튜디오에서 unsafe warning을 중지해야하므로 strcpy가 '안전하지 않은'기능 때문이다.

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 –