답변
무슨 일을하면 정의되지 않은 동작이 발생하므로이 숫자를 얻는 것은 완벽하게 합당한 동작입니다.
이 시퀀스를 수행 할 때 : rPtr
는 이제 선 new int(113)
로 만든 정수를 의미
int *ptr = new int(113);
int &rPtr = *ptr;
참조하십시오. 다음 줄에, 당신은 실행
delete ptr;
이 int
는 개체가 더 이상 존재 의미가없는 것을 삭제합니다. 포인터 또는 참조가 할당되지 않은 객체를 참조하므로 정의되지 않은 동작이 발생합니다. 따라서, 때 발생할 수 있습니다
cout << rPtr << endl;
아무것도와 rPtr
을 인쇄 할 수 있습니다. 여기에서는 가비지 데이터 만 가져오고 있지만 프로그램이 쉽게 손상되거나 디버그 오류 메시지가 표시 될 수 있습니다.
흥미롭게도 : 인쇄 된 값 (-572662307)은 32 비트 부호없는 값으로 처리되며 0xDDDDDDDD입니다. 나는 이것이 메모리 할당 자 (memory allocator)가 할당 취소 된 메모리에 값을 넣어 내기 때문에이 같은 메모리 오류를 디버그하는 데 도움이 될 것입니다.
희망이 도움이됩니다.
답장을 보내 주셔서 감사합니다 :) – deadmau5
:
int main()
{
int *ptr = new int(113);
int &rPtr = *ptr;
delete ptr;
cout << rPtr << endl;
return 0;
}
기본적으로, 이것은 내가 얻을 반환 값입니다. 개체에 대한
int *ptr = new int(113);
int &rPtr = *ptr;
//rPtr references the memory ptr points to
delete ptr;
//the memory is released
//the reference is no longer valid
cout << rPtr << endl;
//you try to access an invalid reference
//anything can happen at this point
참조 모든 블록 범위 살아있다 (이 경우 기능의 범위), 그래서 당신은 포인터를 삭제하면, 일부 쓰레기는이 주소 및 출력 쇼에서였다 참조는 더 이상 유효 포인터를 삭제 후 없습니다 그것.
- 1. 이상한 값을 반환하는 MOD
- 2. 이상한 값을 반환하는 자바의 tan()
- 3. 널 포인터의 비공개 참조, 경고
- 4. int 포인터의 값을 프린트
- 5. Facebook API - 이상한 값을 반환하는 사용자 객체
- 6. 이상한 값을 반환하는 Oracle Link Query
- 7. C++ 포인터의 값을 "잃는"
- 8. 참조 할 때 값을 반환하는 클래스
- 9. C에서 함수 포인터의 typedef에 대한 순환 참조
- 10. 는 방법에서 포인터의 동적 배열을 반환하는 방법
- 11. C++ : 참조 및 포인터의 _implementation_에서 큰 차이점
- 12. C++ 스마트 포인터의 사이클을 사용한 참조 계산
- 13. 참조 계산 스마트 포인터의 참조 계산은 어떻게 작동합니까?
- 14. 잘못된 값을 반환하는 characterAtIndex
- 15. 참조 테이블의 외래 키를 사용하여 가장 반복되는 값을 반환하는 방법
- 16. 스레드에서 값을 반환하는 방법
- 17. VB.net에서 다른 값을 반환하는 설정 변수!
- 18. c에서 char 포인터의 값을 수정하면 segfault가 생성됩니다.
- 19. 이상한 간격을 반환하는 주별 그룹
- 20. 이상한 경로를 반환하는 레일에 제출
- 21. 이상한 문자를 반환하는 텔넷 서버
- 22. 사전에 이상한 객체를 반환하는 JSON
- 23. 함수 Const 포인터의 벡터에서 생성 된 포인터를 반환하는 중
- 24. 참조로 템플릿지도 값을 반환하는 것
- 25. 홀수 값을 반환하는 C++ va_list
- 26. 모든 값을 반환하는 것이 아니라리스트의 값을 몇 개만 반환하는 방법
- 27. $ .getJSON에서 값을 반환하는 방법
- 28. vista.net에서 값을 반환하는 SQLITE
- 29. 아약스에서 값을 반환하는 방법
- 30. 값을 반환하는 메서드에서 foreach
무엇을 기대 했습니까? – RedX
정확하게이 질문을 한 것은 무엇입니까? 사람들이 그러한 질문을 할 때, 그들은 그들이 기대했던 것과 다른 것을 보았다는 것을 의미합니다. 이 경우에 무엇을 기대 했습니까? – AnT
나는 아무것도 보지 못했다. 나는 이런 식으로 시도했을 때 일어날 일에 대해이 아이디어를 얻었다. 그래서 시도해 보았고 이상한 결과를 얻었 기 때문에 다음과 같이 질문했다. D – deadmau5