Q에서 front()로 꺼낸 스트링을 참조로 받는데
VS에서는 Q를 팝하는 순간 temp가 빈값이 되는데
gcc에서는 temp값이 그대로 유지됨
ㅋㅋ
다르게 동작하는거 보면 이건 표준에 정의 안된듯?
VS동작이 좀더 이치에 맞아보이는데
Q에서 front()로 꺼낸 스트링을 참조로 받는데
VS에서는 Q를 팝하는 순간 temp가 빈값이 되는데
gcc에서는 temp값이 그대로 유지됨
ㅋㅋ
다르게 동작하는거 보면 이건 표준에 정의 안된듯?
VS동작이 좀더 이치에 맞아보이는데
GC가 없는 언어라 이런 결과가 나오나봐 ㅇㅅㅇ
오
뇌피셜로 동작 정리해보면 대략 vs ->메모리 값을 0으로 만듦 gcc -> 메모리 값 유지 인거같은데 성능 면에선 gcc가 나을걸 아님 말구 ㅇㅅㅇ
조사 결과 VS는 int pnData = new int(2); 일때 delete 하면 int 메모리를 FFFF FFFF DDDD DDDD 밀어버리고 pnData 메모리도 1FBB 밀어 버리더라구요. 전형적인 댕글링 포인터로 접근하는 코드인데 저렇게 1FBB처럼 작은 값으로 포인터 값을 밀어주면 스택꼭대기를 빨리 쳐서 App이 쓰는 데이터 적게 건드리고 메모리 접근 위반으로 크래쉬 나게 되는 그런 구조였던 것 입니다. int 위치는 이미 메모리 위반 이고요