tlsdbrjs   6년 전

AC는 받았지만 

Add 함수내 temp배열이 지역변수로 선언이되면 런타임에러가 일어나고 전역변수로 선언이 되면 AC가 납니다.

차이를 알고 싶습니다.

djm03178   6년 전

temp가 지역변수로 선언되면 Add 함수가 종료되는 순간에 메모리에서 해제됩니다. 이걸 strcpy에서 접근하려 하면 당연히 segmentation fault가 발생합니다. 어느 컴파일러를 쓰시는지 모르겠지만, 충분히 워닝이 발생할 수 있는 부분입니다. VS 2013에서는 다음과 같이 나옵니다.

 warning C4172: 지역 변수 또는 임시 변수의 주소를 반환하고 있습니다.

tlsdbrjs   6년 전

똑똑하십니다

댓글을 작성하려면 로그인해야 합니다.