메모리는 READ 등의 솔루션이 될 수 없습니다
Windows 운영 체제를 사용하는 사람들은 때때로 "0X 명령어가 참조하는 0x00000000 메모리, 이 메모리는 written 이 될 수 없습니다" 라는 오류 메시지가 나타난 다음 응용 프로그램이 종료됩니다. 사실, 이 실수가 반드시 Windows 불안정으로 인한 것은 아니다. 이 기사에서는이 오류의 일반적인 원인을 간략하게 분석합니다.
첫째, 애플리케이션에서 메모리 할당을 확인하지 못했습니다.
프로그램에 데이터를 저장하기 위한 메모리가 필요한 경우 운영 체제에서 제공하는 "기능 함수" 를 호출하여 신청해야 합니다. 메모리 할당이 성공하면 함수는 새로 열린 메모리 영역 주소를 응용 프로그램에 반환하고 응용 프로그램은 이 주소를 통해 이 메모리를 사용할 수 있습니다. 이것이 바로 "동적 메모리 할당" 입니다. 메모리 주소는 프로그래밍의 "포인터" 입니다.
메모리가 항상 다 쓰이는 것은 아니며, 때로는 메모리 할당도 실패할 때가 있다. 할당이 실패하면 시스템 함수가 0 값을 반환합니다. 이 경우 반환 값 "0" 은 새로 활성화된 포인터를 나타내는 것이 아니라 오류가 발생했음을 알리는 알림을 응용 프로그램에 보냅니다. 응용 프로그램으로서 메모리를 신청할 때마다 반환 값이 0 인지 확인해야 하며, 만약 그렇다면 고장이 발생했음을 의미하며, 몇 가지 조치를 취해야 합니다. 이로 인해 프로그램의' 견고성' 이 향상됩니다.
응용 프로그램이 이 오류를 확인하지 않으면 "사고 관성" 에 따라 이 값이 할당된 사용 가능한 포인터로 간주되어 이후 실행에서 이 메모리를 계속 사용합니다. 실제 0 주소 메모리 영역은 컴퓨터 시스템에서 가장 중요한' 인터럽트 설명자 테이블' 을 저장하며 응용 프로그램은 절대 사용할 수 없습니다. 보호 메커니즘이 없는 운영 체제 (예: DOS) 에서는 이 주소에 데이터를 쓰면 즉시 작동이 멈추고, Windows 와 같은 강력한 운영 체제에서는 시스템의 보호 메커니즘에 의해 즉시 캡처됩니다. 그 결과 운영 체제에서 오류가 발생한 응용 프로그램을 강제로 종료하여 오류가 확대되는 것을 막을 수 있습니다. 위의 "메모리 쓰기" 오류가 발생하고 참조된 메모리 주소가 "0x00000000" 임을 나타냅니다.
메모리 할당 실패에는 여러 가지 원인이 있으며 메모리가 부족하거나 시스템 함수의 버전이 일치하지 않는 등 모두 영향을 받을 수 있습니다. 따라서 이러한 할당 실패는 운영 체제가 오래 사용한 후 실수로 "설치" 된 바이러스 프로그램을 포함한 다양한 어플리케이션을 설치한 후 많은 시스템 매개변수와 시스템 파일을 변경한 후에 발생합니다.
둘째, 애플리케이션은 자체 버그로 인해 비정상적인 메모리 포인터
를 참조합니다동적으로 할당된 응용 프로그램에서 프로그램이' 사용할 수 있어야 한다' 는 메모리를 읽고 쓰려고 하지만, 왠지 이 예상대로 사용할 수 있는 포인터가 이미 고장난 경우가 있다. "잊어버렸어" 운영 체제에 할당을 요청했거나, 프로그램 자체가 어느 시점에서 이 메모리를 로그아웃하고 "주의하지 않았다" 는 등의 문제가 있을 수 있습니다. 로그아웃된 메모리는 시스템에 의해 회수되고, 액세스 권한은 더 이상 해당 애플리케이션에 속하지 않으므로 읽기 및 쓰기 작업도 시스템의 보호 메커니즘을 트리거합니다. "위법" 을 시도하는 프로그램의 유일한 끝은 작동 종료로 모든 자원을 회수하는 것입니다. 컴퓨터 세계의 법률은 여전히 인간보다 훨씬 효과적이고 엄하다!
이와 같은 상황은 프로그램 자체의 버그에 속하며, 너는 종종 특정 조작 순서에서 오류를 재현할 수 있다. 잘못된 포인터가 항상 0 인 것은 아니므로 오류 프롬프트의 메모리 주소도 반드시 "0x00000000" 이 아니라 다른 임의의 숫자입니다.
시스템에서 자주 언급하는 오류 메시지가 있는 경우 다음 제안 사항이 도움이 될 수 있습니다.
1. 시스템에 트로이 목마나 바이러스가 있는지 확인합니다. 이러한 프로그램은 시스템을 통제하기 위해 종종 무책임하게 시스템을 수정하여 운영 체제 이상을 초래한다.
평소에는 정보 보안 의식을 강화해야 하며, 출처가 알려지지 않은 실행 절차에 대해서는 전혀 궁금하지 않다.
2. 운영 체제 설치 프로그램이 올바른 버전의 시스템 파일을 다시 복사하고 시스템 매개 변수를 수정하도록 운영 체제를 업데이트합니다. 운영 체제 자체에도 버그가 있을 수 있으므로 공식적으로 발표된 업그레이드 프로그램을 설치하는 데 주의해야 합니다.
3. 새 버전의 응용 프로그램을 시험해 봅니다.
셋째, 해결 방법
1. 질문 팁:
일부 프로그램을 실행할 때 메모리 오류에 대한 프롬프트가 나타난 다음 프로그램이 닫히는 경우가 있습니다.
0x' 지시문이 참조하는' 0x' 메모리. 이 메모리는 "read" 가 될 수 없습니다.
0x' 지시문이 참조하는' 0x' 메모리는' written' 이 될 수 없습니다.
일반적으로 이 현상은 하드웨어, 즉 메모리에 문제가 있고, 두 번째는 소프트웨어이며, 여기에는 여러 가지 문제가 있습니다.
2. 오류 분석:
A.. 하드웨어 측면:
일반적으로 메모리에 문제가 발생할 가능성은 크지 않습니다. 주된 측면은 메모리가 고장나고, 메모리 품질에 문제가 있으며, 두 개의 다른 브랜드의 서로 다른 용량의 메모리 혼합이 있을 수 있으며, 비호환성이 발생하기 쉬우며, 특히 오버클럭킹 후 열 문제에 주의를 기울여야 한다는 것입니다. MemTest 라는 소프트웨어를 사용하여 메모리를 감지할 수 있습니다. 메모리 안정성을 완전히 감지할 수 있습니다.
이중 메모리이고 다른 브랜드의 메모리가 섞여 있거나 중고 메모리를 구입할 때 이 문제가 발생하면 메모리에 문제가 있는지 또는 다른 하드웨어와 호환되지 않는지 확인해야 합니다.
B.. 소프트웨어 측면:
먼저 원리에 대해 간단히 말해 보겠습니다. 메모리에 데이터가 있는 곳을 버퍼라고 합니다. 프로그램이 데이터를 한 위치에 놓을 때 공간이 부족하면 오버플로우가 발생합니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 성공명언) 예를 들어, 양동이는 물 한 근만 넣을 수 있는데, 물 두 근을 넣으면 넘쳐난다. 그리고 시스템은 화면에 나타납니다. 이 문제는 windows2000 및 XP 시스템에서 자주 발생하며, Windows 2000/XP 의 하드웨어 요구 사항은 매우 까다롭습니다. 리소스 교착 상태, 오버플로 또는 Windows 98 과 같은 불법 작업이 발생할 경우 시스템이 안정적으로 유지될 수 있습니다. 하드웨어 장치 간의 호환성이 좋지 않아 발생할 수도 있습니다.
C. 예:
예 1: IE 브라우저를 열거나 몇 분 안에' 0x70dcf39f' 명령이 참조하는' 0x00000000' 메모리가 나타납니다. 이 메모리는 "read" 가 될 수 없습니다. 프로그램을 종료하려면 "확인" 의 메시지 상자를 클릭하고 "확인" 을 클릭하면 "내부 오류 발생, 사용 중인 창 중 하나가 곧 닫힙니다" 라는 메시지 상자가 나타납니다. 이 메시지를 닫으면 IE 브라우저도 닫힙니다.
해결 방법: 패치와 함께 IE 브라우저를 복구하거나 업그레이드합니다. 수리 방법 중 하나는 WinXP 자체 업그레이드, 즉 WinXP 를 WinXP 로 업그레이드하는 것입니다. 실제로 이 방법은 시스템을 초기 상태로 복원하는 것입니다. 예를 들어 IE 를 7.0 으로 업그레이드하면 업그레이드 후 IE6.0 으로 대체됩니다.
예 2: windows XP 에서 CD 에 있는' AutoRun.exe' 파일을 두 번 클릭하면' 0x77f745cc' 명령이 참조하는' 0x00000078' 메모리가 표시됩니다. 이 메모리는 "written" 이 될 수 없습니다. 프로그램을 종료하려면 "확인" 을 클릭하십시오. Windows 98 에서는 정상적으로 작동합니다.
해결 방법: 시스템 호환성 문제, winXP 시스템, "AutoRun.exe" 파일, 속성, 호환성을 마우스 오른쪽 단추로 클릭하고 "호환성 모드에서 이 프로그램 실행" 항목을 선택한 다음 "Windows 98/Me" 를 선택합니다. Win2000 SP 패치 적용 후 시작, 실행, regsvr32c: winntappatchslayerui.dll 을 입력합니다. 마우스 오른쪽 버튼, 속성, 호환성 옵션도 나타납니다.
예 3: RealOne Gold 를 닫을 때 오류가 발생했습니다. 이전에는 정상적으로 사용했지만 최근에는 닫을 때마다 "0xfffffffff" 명령이 참조하는 "0xffffffff" 메모리가 나타납니다. 이 메모리는 "read" 프롬프트가 될 수 없습니다.
해결 방법: Microsoft 병음 입력기 2003 을 사용하고 언어 막대를 숨길 때 (숨기지 않을 때 문제 없음) RealOne 을 닫으면 이 문제가 발생합니다. 따라서 RealOne 을 닫기 전에 언어 바를 표시하거나 다른 입력기 중 하나를 현재 입력기 로 사용하여 이 문제를 해결할 수 있습니다.
예 4: 플레이어가 재생할 수 없습니다. "Ox060692f6" (변경 때마다) 명령어가 참조하는 "Oxff000011" 메모리는 "read" 가 될 수 없습니다. 프로그램을 종료하려면 확인을 누르십시오.
해결 방법: 플레이어를 다시 설치해 보십시오. 다시 설치한 후에도 공식 웹 사이트에서 해당 버전의 패치를 다운로드해 보십시오. 아직 안 돼, 어쩔 수 없이 바꿔서 다른 플레이어로 해봐.
예 5: 게임 바로 가기를 두 번 클릭합니다. "Ox77f5cdO" 명령은 "o xfffffff" 메모리를 참조합니다. 이 메모리는 "read" 가 될 수 없으며 Client.dat 프로그램 오류를 표시합니다.
해결 방법: 비디오 카드에 대한 최신 드라이버를 다시 설치한 다음 DirectX9.0 을 다운로드하여 설치합니다.
예 6: 컴퓨터에서 "0*772b548f" 명령어가 참조하는 "0*00303033" 메모리가 "written" 이 될 수 없는 경우 QQ 가 자동으로 오프라인 상태가 됩니다.
해결 방법: 상대방이 QQ 를 이용하는 버그로, 특별한 코드를 보내고, QQ 를 잘못 만들어서 패치하거나 최신 버전으로 업그레이드하면 됩니다.
예 7: XP 시스템이 웹 페이지를 닫을 때 "tbrowser.exe 에 문제가 발생했습니다. 종료해야 합니다" 라는 팝업과 0x03e7c738 명령어가 참조하는 0x03e7c738 메모리가 있습니다. 이 메모리는 read 가 될 수 없습니다.
해결 방법: 먼저 바이러스를 조사하고, 브라우징과 같은 소프트웨어를 설치한 경우 제거하십시오.
예 8: 바탕 화면 또는 시작 메뉴에서 임의의 프로그램을 열면 "0x ....." 명령이 참조하는 "0x00000000" 메모리가 "read" 가 될 수 없다는 오류 메시지가 나타납니다. 줄임표는 변수 값을 나타냅니다. 실행에서 프로그램을 여는 것은 괜찮습니다.
해결 방법: 레지스트리로 regedit 를 실행합니다. HKEY _ local _ machinesoftwaremicrosoftwindowscurrentversionexplorershellexecutehooks 아래에 하나의 정상만 있어야 합니다
예 9: 시스템이 불안정하고 시스템을 여러 번 재설치했고, Explorer- 응용 프로그램 오류가 무작위로 발생하는 경우가 많습니다. "0x4a01259d" 명령어가 참조하는 "0x00000000" 메모리입니다. 이 메모리는 "read" 가 될 수 없습니다.
프로그램을 종료하려면 확인 을 클릭합니다. 프로그램을 디버그하려면 취소를 클릭합니다. 포인트가 확인되면 windows 바탕 화면이 사라집니다. 이런 문제가 이전 시스템에서도 발생했는데 하드웨어 문제인지 모르겠어요?
해결 방법: 메모리 호환성 문제! 이런 문제가 발생하면 사용자는 스스로 기계를 켜서 메모리 위치를 옮겨 문제가 해결될 수 있는지 확인하고, 문제가 계속되면 친구와 메모리 사용을 교환할 수 있다.
위의 몇 가지 예를 통해 여러 가지 장애 원인이 있음을 알 수 있으며, 다음은 이미 언급되고 발생할 수 있는 원인들로 쉽게 찾아볼 수 있습니다.
1. 문제의 원인-해결 방법
2. 메모리가 고장났습니다.-메모리 바 교체
3. 듀얼 메모리는 호환되지 않습니다. 같은 브랜드의 메모리를 사용하거나 단 하나의 메모리만 사용하십시오
4. 메모리 품질 문제-메모리 바 교체
5. 열 문제-섀시 내부의 열 강화
6. 메모리 및 마더보드가 꽂혀 있지 않거나 다른 하드웨어와 호환되지 않는 등-메모리 재장착 또는 플러그 변경
7. 하드 드라이브에 문제가 있습니다. 하드 드라이브 교체
8. 드라이브 문제-드라이버를 다시 설치합니다. 새 시스템인 경우 먼저 마더보드 드라이버
를 설치해야 합니다9. 소프트웨어 손상-소프트웨어 재설치
10. 소프트웨어에는 버그가 있습니다. 패치를 적용하거나 최신 버전을 사용합니다.
11. 소프트웨어와 시스템이 호환되지 않습니다.-소프트웨어를 패치하거나 시스템의 호환 모드를 시도해 보십시오
12. 소프트웨어와 소프트웨어 간에 충돌이 있습니다. 최근에 새로운 소프트웨어를 설치한 경우
를 제거하십시오13. 소프트웨어가 다른 관련 소프트웨어를 사용해야 하는데 문제가 있습니다. 관련 소프트웨어를 다시 설치하십시오. 예를 들어 특정 형식의 파일을 재생하는 중 오류가 발생하면 해당 파일의 디코더에 문제가 있을 수 있습니다.
14. 바이러스 문제-바이러스 백신
15. 바이러스 백신 소프트웨어가 시스템 또는 소프트웨어와 충돌-바이러스 백신 소프트웨어가 기본 모니터링 시스템에 진입하기 때문에 일부 소프트웨어와 충돌할 수 있으므로 제거 시도
16. 시스템 자체에 문제가 있습니다. 때로는 운영 체제 자체에도 버그가 있습니다. SP 패치와 같이 공식적으로 릴리스된 업그레이드 프로그램을 설치하는 것이 가장 좋습니다. 아직 시스템을 재설치하거나 다른 버전의 시스템을 교체할 수 없다면.