컴퓨터 지식 네트워크 - 컴퓨터 프로그래밍 - 메모리가 00X000000인데 무슨 일이죠?

메모리가 00X000000인데 무슨 일이죠?

Windows 운영체제를 사용하는 사람들은 "0X 명령이 0x00000000의 메모리를 참조합니다. 메모리를 쓸 수 없습니다."라는 오류 메시지를 접한 후 응용 프로그램을 닫는 경우가 있습니다. 실제로 이 오류는 반드시 Windows 불안정으로 인해 발생하는 것은 아닙니다. 이 기사에서는 이 오류의 일반적인 원인을 간략하게 분석합니다.

1. 애플리케이션이 메모리 할당 실패를 확인하지 않았습니다

프로그램이 데이터를 저장하기 위해 메모리 조각이 필요한 경우 운영 체제에서 제공하는 "함수 함수"를 호출해야 합니다. 메모리 할당이 성공하면 함수는 새로 열린 메모리 영역의 주소를 응용 프로그램에 반환하고 응용 프로그램은 이 주소를 통해 이 메모리를 사용할 수 있습니다. 이것이 "동적 메모리 할당"이며, 프로그래밍에서 메모리 주소는 "포인터"이기도 합니다.

메모리는 항상 사용 가능하고 무한하지 않으며 때로는 메모리 할당이 실패할 수도 있습니다. 할당이 실패하면 시스템 함수는 0 값을 반환합니다. 이때 반환 값 "0"은 더 이상 새로 활성화된 포인터를 나타내지 않고 시스템에서 응용 프로그램에 오류가 있음을 알리는 알림을 나타냅니다. 발생했습니다. 응용 프로그램으로서 메모리를 적용할 때마다 반환 값이 0인지 확인해야 합니다. 그렇다면 오류가 발생했음을 의미하며 이를 저장하기 위해 몇 가지 조치를 취해야 합니다. 이렇게 하면 프로그램의 "견고함"이 향상됩니다.

애플리케이션이 이 오류를 확인하지 않으면 이 값이 "생각하는 관성"에 따라 할당된 사용 가능한 포인터라고 생각하고 후속 실행에서 이 메모리를 계속 사용하게 됩니다. 주소 0의 실제 메모리 영역은 컴퓨터 시스템에서 가장 중요한 "인터럽트 설명자 테이블"을 저장하며 응용프로그램에서는 이를 절대 사용할 수 없습니다. 보호 메커니즘이 없는 운영 체제(예: DOS)에서 이 주소에 데이터를 쓰면 즉시 충돌이 발생합니다. Windows와 같은 강력한 운영 체제에서는 이 작업이 시스템의 보호 메커니즘에 의해 즉시 캡처되며 그 결과는 다음과 같습니다. 운영 체제는 오류가 확산되는 것을 방지하기 위해 잘못된 응용 프로그램을 강제로 닫습니다. 이때, 위에서 언급한 "메모리 쓰기" 오류가 나타나며 참조된 메모리 주소가 "0x00000000"임을 지적합니다.

메모리 할당 실패에는 여러 가지 이유가 있습니다. 메모리 부족, 시스템 기능 버전 불일치 등이 영향을 미칠 수 있습니다. 따라서 이러한 종류의 할당 실패는 운영 체제를 오랫동안 사용한 후, 다양한 응용 프로그램(실수로 "설치"된 바이러스 프로그램 포함)을 설치한 후, 많은 수의 시스템 매개 변수 및 시스템 파일이 변경되었습니다.

2. 애플리케이션 자체 버그로 인해 비정상적인 메모리 포인터를 참조합니다.

동적 할당을 사용하는 애플리케이션에서는 때때로 다음과 같은 상황이 발생합니다. "사용 가능해야 함" 메모리 블록을 작성했지만 어떤 이유로 예상되는 사용 가능한 포인터가 만료되었습니다. 운영 체제에 할당을 요청하는 것을 "잊었"거나 프로그램 자체가 "주의를 기울이지" 않은 채 어느 시점에서 이 메모리를 로그오프했을 수도 있습니다. 등록되지 않은 메모리는 시스템에 의해 회수되며 해당 액세스 권한은 더 이상 응용 프로그램에 속하지 않습니다. 따라서 읽기 및 쓰기 작업도 "불법"을 시도하는 프로그램의 유일한 운명은 종료됩니다. 작업에 의해 모든 리소스가 회수됩니다. 컴퓨터 세계의 법률은 여전히 ​​인간의 법률보다 훨씬 더 효과적이고 엄격합니다!

이와 같은 상황은 모두 프로그램 자체의 버그이며 특정 작업 순서에서 오류를 재현할 수 있는 경우가 많습니다. 유효하지 않은 포인터는 항상 0이 아니므로 오류 메시지의 메모리 주소는 반드시 "0x00000000"이 아니라 다른 임의의 숫자입니다.

시스템에 오류 메시지가 자주 표시되는 경우 다음 제안 사항이 도움이 될 수 있습니다.

1. 시스템에 트로이 목마나 바이러스가 있는지 확인하세요. 이러한 프로그램은 시스템을 제어하기 위해 무책임하게 시스템을 수정하여 운영 체제에 이상을 일으키는 경우가 많습니다. 항상 정보 보안 인식을 강화해야 하며, 출처를 알 수 없는 실행 프로그램에 대해 절대 호기심을 가져서는 안 됩니다.

2. 운영 체제를 업데이트하고 운영 체제 설치 프로그램이 올바른 버전의 시스템 파일을 다시 복사하도록 하고 시스템 매개변수를 수정합니다. 가끔 운영체제 자체에 버그가 있을 수 있으니 반드시 정식 업그레이드 프로그램을 설치하시기 바랍니다.

3. 새로운 버전의 애플리케이션을 사용해 보세요.

3. 해결 방법

1. 문제 해결 방법:

특정 프로그램 실행 시 메모리 오류 메시지가 나타난 후 프로그램이 종료되는 경우가 있습니다. .

"0x" 명령어가 참조하는 "0x" 메모리입니다. 이 메모리는 "읽을" 수 없습니다.

"0x" 명령이 참조하는 "0x" 메모리는 "쓰기"할 수 없습니다.

일반적으로 이러한 현상은 여러 가지 이유로 발생합니다. 하나는 하드웨어, 즉 메모리에 문제가 있는 것이고, 다른 하나는 소프트웨어에 문제가 많은 것입니다.

2. 실패 분석:

a..하드웨어 측면:

일반적으로 메모리 문제의 가능성은 높지 않습니다. 메모리 모듈이 파손되거나, 메모리 품질에 결함이 있거나, 브랜드와 용량이 다른 두 개의 메모리 모듈을 함께 연결하면 비호환성이 발생할 가능성이 높습니다. 특히 열 방출 문제에 주의해야 합니다. 메모리를 읽을 수 없는 문제는 매우 심각한 문제입니다. 하드웨어적인 이유, 소프트웨어적인 이유 등 여러 가지 요인으로 인해 복잡한 문제가 발생하는데 이는 단시간에 파악하기 어렵습니다. 하루 종일 컴퓨터 게임을 하는 베테랑들에게도 이는 매우 어려운 문제이기도 하다. 개인적인 이해에 따르면 대부분은 복구가 쉽고 어려운 비정품 시스템을 사용하여 발생하는 불안정성과 관련이 있습니다. 따라서 자주 발생하지 않는 한 무시하고 "확인" 또는 "취소"를 클릭하면 된다는 것이 일반적인 의견입니다.

上篇: 징둥 Lenovo ThinkPad 관료가 플래그십 스토어를 뒤져 믿을 수 있을까? 下篇: 다른 사람의 웹사이트를 복사하는 것도 침해로 간주되나요?
관련 내용